Проблема хеширования при переходе с PHP 5.6. до 8,3Php

Кемеровские программисты php общаются здесь
Anonymous
Проблема хеширования при переходе с PHP 5.6. до 8,3

Сообщение Anonymous »

Мы переходим с PHP 5.6/CodeIgniter 3 на PHP 8.3.4/CodeIgniter 4. В старой версии мы использовали приведенный ниже метод регистрации пользователей и сохраняли $salt и $password в БД.

Код: Выделить всё

$salt    = hash('sha512', uniqid(mt_rand(1, mt_getrandmax()), TRUE));
$password = hash('sha512', $data['password'] . $salt);
При входе пользователя мы использовали метод, указанный ниже

Код: Выделить всё

$results = $query->getRowArray();
$salted_password = hash('sha512', $password . $results['salt']);
if ($results['password'] == $salted_password) { return true; }
Новая версия выдает несоответствие пароля существующим учетным данным пользователей в БД. Но с новым зарегистрированным пользователем все работает нормально.

[*]Есть идеи, почему это происходит?
[*]Это Функция hash() работает по-разному в разных
версиях PHP?
[*]Есть ли предложения заставить ее работать с учетными данными существующих пользователей?


Подробнее здесь: https://stackoverflow.com/questions/784 ... 5-6-to-8-3

Вернуться в «Php»