Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.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
PHP多次迭代哈希_Php_Hash_Sha1 - Fatal编程技术网

PHP多次迭代哈希

PHP多次迭代哈希,php,hash,sha1,Php,Hash,Sha1,当查看我的PHP代码时,我发现我的代码中对代码执行多次迭代哈希的区域导致了问题,不允许加载页面(当我尝试加载register.PHP时,它只会加载一个白色空白页面)。不过,我似乎在代码中找不到错误。任何帮助都将不胜感激 function RandomString($length) { $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; $randomString = '';

当查看我的PHP代码时,我发现我的代码中对代码执行多次迭代哈希的区域导致了问题,不允许加载页面(当我尝试加载register.PHP时,它只会加载一个白色空白页面)。不过,我似乎在代码中找不到错误。任何帮助都将不胜感激

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);
}