Обновление с Prestashop 1.6 MD5 шифрование до 1.7
Я обновляю свой PS 1.6 до 1.7. Я знаю, что PS 1.6 использует этот метод шифрования md5(_COOKIE_KEY_.$passwd)
, но мы преобразовали его в md5($passwd)
ранее для совместимости с нашим предыдущим магазином not-prestashop.
Теперь мы хотим обновить до 1.7, и мы видим, что метод шифрования изменился на hash(). Мы добились, чтобы войти в предыдущих пользователей, изменив эту функцию: getByEmail()
, но теперь мы хотим, чтобы регистр работал хорошо (сохранение пароля как md5($plaintextpassword)
). Мы знаем, что новый метод шифрования является гораздо более безопасным и не рекомендуется использовать md5($plaintextpassword)
, но теперь мы не можем изменить это.
Мы изменились в классах / клиентах.php все строки из:
$this->passwd = $crypto->hash($password);
к:
$this->passwd = md5($password);
Но со всеми этими изменениями, когда мы регистрируем нового пользователя, он сохраняется как метод hash() в этом формате $2y$10$VPm9ygay2ldd0Vu0J4ttQuOdD/mIytURV / nXCXKs4GcB4AkIWtaQm вместо этого: bcef5cffa6f4bb0abb94cf6fa7a7cb2f. я не нахожу, где я должен изменить, чтобы сохранить в нужном формате?


Ответы - Обновление с Prestashop 1.6 MD5 шифрование до 1.7 / Updating from Prestashop 1.6 MD5 encryption to 1.7

21.10.2019 09:36:35
Вы должны переопределить PrestaShop и добавить новую дополнительную проверку паролей:
if(!loginWithOriginalMethod($password)) {
loginWithAdditionalMethod($password);
}
Используя этот способ, как ваши новые, так и старые клиенты могут войти в ваш магазин