繁体   English   中英

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

[英]How to get final value from a for loop?

我有一个像Abcd123这样的密码,我首先使用shas256进行了哈希处理,然后在该哈希中添加了一个盐,最后我使用loop制作了一个复杂的密码。我的代码如下:-

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

但是现在的问题是,不管我是否删除整个for循环代码

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

或添加我的回声$ loop; 产生相同的结果家伙:(我的意思是这就像我的for循环没有完成其工作!我该如何解决这个问题?

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

您可能想做这样的事情:

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

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

好吧,我想您可能还要进行更多调试。 您是否尝试过只运行一次:

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

看看会发生什么?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM