我有一个像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 $循环;产生相同的结果家伙:(我的意思是它像我的循环不能完成它的工作!我怎么能解决这个问题?
答案 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');
看看会发生什么?