PHP多重迭代哈希

时间:2014-04-19 21:45:05

标签: php hash sha1

在浏览我的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);
}

1 个答案:

答案 0 :(得分:1)

你的最后一个循环似乎毫无意义,因为它只是覆盖$hashedcode,永远不会结束,因为你正在递增常量i而不是$i var,所以$i保持0,永远小于5,产生无限真实的条件:

for($i=0;$i<5;i++){
    $hashedcode = sha1($hashedcode.$code.$salt);
}

应该是

for($i=0;$i<5;$i++){
    $hashedcode = sha1($hashedcode.$code.$salt);
}