函数crypt()不';t返回PHP7.0中的哈希值
我有这样的东西(抄袭自)函数crypt()不';t返回PHP7.0中的哈希值,php,hash,bcrypt,crypt,blowfish,Php,Hash,Bcrypt,Crypt,Blowfish,我有这样的东西(抄袭自) $Blowfish_Pre='2a$05$'; $Blowfish_End='$'; $bcrypt_盐=$Blowfish_盐$盐$河豚尾; $hashed\u password=crypt($password,$bcrypt\u salt); 回声$salt'; 回显$password。”'; echo$bcrypt_salt。”'; echo$hash_密码。“'; 呼应“结束”; 当我测试运行它时,$hashed\u password的值与$bcrypt\u
$Blowfish_Pre='2a$05$';
$Blowfish_End='$';
$bcrypt_盐=$Blowfish_盐$盐$河豚尾;
$hashed\u password=crypt($password,$bcrypt\u salt);
回声$salt
';
回显$password。”
';
echo$bcrypt_salt。”
';
echo$hash_密码。“
';
呼应“结束”;
当我测试运行它时,$hashed\u password
的值与$bcrypt\u salt
完全相同,而$salt
、$password
和$bcrypt\u salt
都会按预期返回值。如何修复此问题?抱歉,这是错误的:“pre”中的“05$”太多了。试着不用
手册()说:
CRYPT_河豚-河豚用盐散列如下:“$2a$”,
“$2x$”或“$2y$”,一个两位数的成本参数“$”,22个字符
从字母表“/0-9A-Za-z”
使用这种22焦长的盐可以:
echo crypt('secret', '$2a$05$1234567890123456789012$');
$2a$05$123456789012345678901u.97m5mwuxOR3RvRKYm9sasohx5Mnzwq
总是使用随机散列,上面只是一个例子
如果您不需要“2a”版本的河豚,我建议您使用以下选项,因为它与crypt()兼容并生成一个随机salt:
echo password_hash("secret", PASSWORD_BCRYPT);
附言:在阅读手册中类似的内容时,我倾向于建议不再使用PHP进行任何操作。他们不能像其他sane API一样抛出异常吗
在salt中使用超出此范围的字符将导致crypt()
返回长度为零的字符串
对不起,这是错误的:“pre”中的“05$”太多了。试着不用
手册()说:
CRYPT_河豚-河豚用盐散列如下:“$2a$”,
“$2x$”或“$2y$”,一个两位数的成本参数“$”,22个字符
从字母表“/0-9A-Za-z”
使用这种22焦长的盐可以:
echo crypt('secret', '$2a$05$1234567890123456789012$');
$2a$05$123456789012345678901u.97m5mwuxOR3RvRKYm9sasohx5Mnzwq
总是使用随机散列,上面只是一个例子
如果您不需要“2a”版本的河豚,我建议您使用以下选项,因为它与crypt()兼容并生成一个随机salt:
echo password_hash("secret", PASSWORD_BCRYPT);
附言:在阅读手册中类似的内容时,我倾向于建议不再使用PHP进行任何操作。他们不能像其他sane API一样抛出异常吗
在salt中使用超出此范围的字符将导致crypt()
返回长度为零的字符串
您使用的是什么版本的php?我使用的是PHP7.0您使用的是什么版本的php?我使用的是PHP7.0“从PHP5.3.2开始,无效回合的河豚行为返回“失败”字符串(“*0”或“*1”),而不是返回DES。”“从PHP5.3.2开始,无效回合的河豚行为返回“失败”字符串(“*0”或“*1”),而不是回到DES。”