【发布时间】:2018-08-19 23:18:11
【问题描述】:
我正在努力将我的代码库升级到 PHP-7,但我遇到了一些老用户的问题,他们的 salt 格式与 DES 不兼容。我的想法是对用户进行身份验证,然后将哈希盐转换为与新密码兼容的新格式,如 Blowfish。
当我尝试在旧盐中使用“crypt()”以便在更改盐之前对用户进行身份验证时,问题出现了,我收到以下错误:
crypt():提供的盐对 DES 无效。提供的可能错误 盐格式。
有没有办法将 crypt(或替代函数)与其他算法一起使用,以便我可以使用旧格式的 salt?
【问题讨论】:
-
你试过
password_hash吗? password_hash() 使用强哈希,生成强盐,并自动应用适当的轮次。 password_hash() 是一个简单的 crypt() 包装器,并且与现有的密码哈希兼容。鼓励使用 password_hash()。 不能完全确定它是否能解决您的问题,但与现有哈希兼容听起来很有希望。 -
我最终使用了
password_verify,它实际上类似于password_hash,但只返回真或假。然后在我将哈希重新转换为新格式之后。