Обновление шифрования Prestashop 1.6 MD5 до 1.7 - PullRequest
0 голосов
/ 21 октября 2019

Я обновляю PS 1.6 до 1.7. Я знаю, что PS 1.6 использует этот метод шифрования md5(_COOKIE_KEY_.$passwd), но мы ранее преобразовали его в md5($passwd) для совместимости с нашим предыдущим магазином не-prestashop.

Теперь мы хотим обновить до 1.7, и мы видим, что метод шифрования изменился на hash (). Мы достигли возможности входа в систему предыдущих пользователей, изменив эту функцию: getByEmail(), но теперь мы хотим, чтобы регистр работал хорошо (сохраняя пароль как md5($plaintextpassword)). Мы знаем, что новый метод шифрования намного более безопасен и не рекомендуется использовать md5($plaintextpassword), но теперь мы не можем это изменить.

Мы изменили в Classes / Customer.php все строки с:

$this->passwd = $crypto->hash($password);

to:

$this->passwd = md5($password);

Но со всеми этими изменениями, когда мы регистрируем нового пользователя, он сохраняется как метод hash () в этом формате $ 2y $ 10 $ VPm9ygay2ldd0Vu0J4ttQuOdD / mIytURV / nXCXKs4GcB4AkIta вместоэто: bcef5cffa6f4bb0abb94cf6fa7a7cb2f. Не могу найти, где мне нужно перейти, чтобы сохранить в нужном формате?

1 Ответ

1 голос
/ 21 октября 2019

Вы должны переопределить PrestaShop и добавить новую дополнительную проверку пароля:

if(!loginWithOriginalMethod($password)) {
    loginWithAdditionalMethod($password);
}

Используя этот способ, ваши новые и старые клиенты могут войти в ваш магазин

...