如何从for循环中获取最终值?

时间:2015-09-12 15:42:48

标签: php for-loop hash

我有一个像Abcd123这样的密码,我首先使用shas256进行了哈希,然后添加了一个带有哈希值的盐,最后我用循环来制作一个复杂的密码。我的代码如下所示: -

   $password = 'Abcd123';
   $salt = '1e841d1e9b09ae';
   $loop = hash('sha256', $password. $salt); 
   for($round = 0; $round < 65536; $round++) 
    { 
        $loop = hash('sha256', $password. $salt); 
    } 
   echo $loop;

但现在的问题是,无论我是否删除了我的整个循环代码

       for($round= 0; $round < 65536; $round++)
        {
            $loop = hash('sha256,$password . $salt')
        }

或添加我的echo $循环;产生相同的结果家伙:(我的意思是它像我的循环不能完成它的工作!我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:3)

你只是一遍又一遍地重复同样的步骤,但没有继续前面的结果。您将结果存储在变量$loop中,但不是使用该变量作为下一步的输入。

你可能想做这样的事情:

$password = 'Abcd123';
$salt = '1e841d1e9b09ae';
for($round = 0; $round < 65536; $round++) 
{ 
    $password = hash('sha256', $password. $salt); 
} 
echo $password;

但请注意,使用PHP的内置函数password_hash()可能更容易,更不容易出错,因此更安全。

答案 1 :(得分:1)

好吧,我想你可能会做更多的调试。您是否尝试过只运行一次:

$loop = hash('sha256,$password . $salt');

看看会发生什么?