Yii2 PHP7中旧哈希盐的crypt()回退

Yii2 PHP7中旧哈希盐的crypt()回退,yii2,crypt,php-7,Yii2,Crypt,Php 7,我正在将我的代码库升级到PHP-7,我遇到了一些旧用户的问题,他们的salt格式与DES不兼容。我的想法是对用户进行身份验证,然后将hash salt转换为与新密码兼容的新格式,如Blowfish 当我尝试对旧salt使用“crypt()”以在更改salt之前对用户进行身份验证时,出现了以下错误: crypt():提供的盐对DES无效。提供了可能存在的错误 salt格式 有没有办法将crypt(或替代函数)与其他算法一起使用,这样我就可以使用旧的salt格式?对于有相同问题的人,我使用密码验证解

我正在将我的代码库升级到PHP-7,我遇到了一些旧用户的问题,他们的salt格式与DES不兼容。我的想法是对用户进行身份验证,然后将hash salt转换为与新密码兼容的新格式,如Blowfish

当我尝试对旧salt使用“crypt()”以在更改salt之前对用户进行身份验证时,出现了以下错误:

crypt():提供的盐对DES无效。提供了可能存在的错误 salt格式


有没有办法将crypt(或替代函数)与其他算法一起使用,这样我就可以使用旧的salt格式?

对于有相同问题的人,我使用
密码验证
解决了这个问题,实际上下面使用了
密码散列
,它支持Joachim建议的现有密码散列

只有一件事需要记住,密码验证有一个特定的运行时间。如果您使用的是密码,强烈建议使用。

您是否尝试过
密码\u散列
?password_hash()使用强散列,生成强salt,并自动应用正确的轮数。password_hash()是一个简单的crypt()包装器,与现有密码哈希兼容。鼓励使用密码\u hash()。无法确定它是否能解决您的问题,但与现有哈希值兼容听起来很有希望。我最终使用了
password\u verify
,它实际上类似于
password\u hash
,但只返回true或false。然后在我将散列重新转换为新格式之后。