密码哈希值,从 php 5.4 到 5.6
password hashes, from php 5.4 to 5.6
我有一个旧数据库,其中包含使用 php 5.4 生成的用户及其密码哈希,函数如下:
password_hash($password, PASSWORD_DEFAULT, 10);
现在我正在使用 laravel 和 php 5.6 创建一个新网站,我想让旧用户使用相同的凭据登录到新网站。
但是,我知道 PASSWORD_DEFAULT 不是 PHP < 5.5 上的 bcrypt 算法,但它确实在我新安装的 php 5.6 上使用了 bcrypt。
如何让老用户在不重置所有密码的情况下登录我的网站?这可能吗?
password_hash($password, PASSWORD_DEFAULT, 10);
你确定是这个意思?
password_hash($password, PASSWORD_DEFAULT, ['cost' => 10]);
However, I understand that PASSWORD_DEFAULT is not the bcrypt algo on PHP < 5.5
那是因为 password_hash()
和 password_verify()
在 PHP 5.4 中不存在。您可能正在使用 ircmaxell/password_compat,它在 5.4 中提供了此功能。此外,PASSWORD_DEFAULT
在 password_compat 中是 bcrypt。
无论如何,这应该 "just work"。如果没有,则说明您从一开始就有一个奇怪且可能不安全的设置。
我有一个旧数据库,其中包含使用 php 5.4 生成的用户及其密码哈希,函数如下:
password_hash($password, PASSWORD_DEFAULT, 10);
现在我正在使用 laravel 和 php 5.6 创建一个新网站,我想让旧用户使用相同的凭据登录到新网站。
但是,我知道 PASSWORD_DEFAULT 不是 PHP < 5.5 上的 bcrypt 算法,但它确实在我新安装的 php 5.6 上使用了 bcrypt。
如何让老用户在不重置所有密码的情况下登录我的网站?这可能吗?
password_hash($password, PASSWORD_DEFAULT, 10);
你确定是这个意思?
password_hash($password, PASSWORD_DEFAULT, ['cost' => 10]);
However, I understand that PASSWORD_DEFAULT is not the bcrypt algo on PHP < 5.5
那是因为 password_hash()
和 password_verify()
在 PHP 5.4 中不存在。您可能正在使用 ircmaxell/password_compat,它在 5.4 中提供了此功能。此外,PASSWORD_DEFAULT
在 password_compat 中是 bcrypt。
无论如何,这应该 "just work"。如果没有,则说明您从一开始就有一个奇怪且可能不安全的设置。