Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
函数crypt()不';t返回PHP7.0中的哈希值_Php_Hash_Bcrypt_Crypt_Blowfish - Fatal编程技术网

函数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。”