我有一个旧的数据库,用户和他们的密码哈希使用php 5.4生成,具有以下功能:
password_hash($password, PASSWORD_DEFAULT, 10);
现在我正在创建一个带有php 5.6的laravel的新网站,我想让旧用户使用相同的凭据登录到新用户。
但是,我知道PASSWORD_DEFAULT不是PHP上的bcrypt算法< 5.5,但它确实在我新安装的php 5.6上使用了bcrypt。
如何让旧用户登录我的网站而不重置所有密码?这可能吗?
答案 0 :(得分:1)
password_hash($password, PASSWORD_DEFAULT, 10);
当然你的意思是这个?
password_hash($password, PASSWORD_DEFAULT, ['cost' => 10]);
但是,我知道PASSWORD_DEFAULT不是PHP上的bcrypt算法< 5.5
这是因为PHP 5.4中不存在password_hash()
和password_verify()
。您可能正在使用ircmaxell/password_compat,它在5.4中提供此功能。此外,PASSWORD_DEFAULT
在password_compat中是bcrypt。
无论哪种方式,这应该"只是工作"。如果它没有,那么从一开始就有一个奇怪且可能不安全的设置。