这样的代码可以生成两个相同的哈希吗?(假设时钟运行正常)
<?php
$t = time();
$u = $_POST['username'];
$st = $t.$u
$salt = 'c5ac71cd162840eb7a4c2035ee132507';
$e = crypt($st, $salt);
?>
这样的代码可以生成两个相同的哈希吗?(假设时钟运行正常)
<?php
$t = time();
$u = $_POST['username'];
$st = $t.$u
$salt = 'c5ac71cd162840eb7a4c2035ee132507';
$e = crypt($st, $salt);
?>
根据哈希的定义和鸽巢原理,是的,任何哈希都会产生冲突。一个好的散列的定义品质之一是两个输入产生相同输出的机会是如此之低以至于在实践中可以忽略不计。
话虽如此,相同的输入将始终产生相同的输出(哈希的另一种定义质量),并且如果您要使用静态盐作为输入并且相对很少更改“随机”值,例如time()
(它仅每秒更改一次,是计算中的永恒),产生碰撞的机会更高。
我无法评论这里哈希的正确用法是什么,因为我不知道你想用它做什么。