PHP多次迭代哈希
当查看我的PHP代码时,我发现我的代码中对代码执行多次迭代哈希的区域导致了问题,不允许加载页面(当我尝试加载register.PHP时,它只会加载一个白色空白页面)。不过,我似乎在代码中找不到错误。任何帮助都将不胜感激PHP多次迭代哈希,php,hash,sha1,Php,Hash,Sha1,当查看我的PHP代码时,我发现我的代码中对代码执行多次迭代哈希的区域导致了问题,不允许加载页面(当我尝试加载register.PHP时,它只会加载一个白色空白页面)。不过,我似乎在代码中找不到错误。任何帮助都将不胜感激 function RandomString($length) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = '';
function RandomString($length) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
$code = RandomString(25);
mail($email, "Your code for the Assassin game.", "Your code is: $code");
$salt = RandomString(8);
$hashedcode = "";
for($i=0;$i<5;i++){
$hashedcode = sha1($hashedcode.$code.$salt);
}
函数随机字符串($length){
$characters='0123456789abcdefghijklmnopqrstuvxyzabcdefghijklmnopqrstuvxyz';
$randomString='';
对于($i=0;$i<$length;$i++){
$randomString.=$characters[rand(0,strlen($characters)-1)];
}
返回$randomString;
}
$code=RandomString(25);
邮件($email,“你的刺客游戏代码”,“你的代码是:$code”);
$salt=随机字符串(8);
$hashedcode=“”;
对于($i=0;$i您的上一个循环似乎毫无意义,因为它只是覆盖了$hashedcode
,它永远不会结束,因为您正在增加一个常量i
,而不是$i
变量,因此$i
仍然是0,永远小于5,从而产生无限真实的条件:
for($i=0;$i<5;i++){
$hashedcode = sha1($hashedcode.$code.$salt);
}
用于($i=0;$i谢谢你,我没看到!还有,最后一个循环,以其正确的形式,不是做了一个$code的多次迭代盐渍散列吗?是的,但这是我个人认为太少太晚的事情之一。错误的安全感,如果你愿意的话。@cmuenginer-五次迭代不会严重减缓暴力。如果你想要一次迭代ed hash那么你最好使用PHPs函数使用BCrypt。在你使用25个字符的字符串(一个非常强的密码)的情况下,计算一个SHA256哈希就足够安全了。如果你想提高安全性,我建议你改为处理代码的随机性。
for($i=0;$i<5;$i++){
$hashedcode = sha1($hashedcode.$code.$salt);
}