Когда пользователь регистрируется, создайте случайный salt
, используя, например, следующую функцию:
$bytes = 50;
$salt = base64_encode(openssl_random_pseudo_bytes($bytes));
Сохраните это в таблице базы данных. Лучше всего хранить его во внешней базе данных. После этого создайте случайный код и сохраните его вместе с солью во внешней базе данных. Чем хранить случайный код в вашей таблице пользователей, и злоумышленник почти не сможет найти вашу соль.
После этого сохраните свой пароль, например, так:
$password_to_store_in_mysql = hash('sha512', $salt . $user_password);
Когда пользователь входит в систему, выведите соль из внешней базы данных и проверьте, совпадают ли соль и пароль.