这样的代码可以生成两个相同的哈希值吗? (假设时钟正确)
<?php
$t = time();
$u = $_POST['username'];
$st = $t.$u
$salt = 'c5ac71cd162840eb7a4c2035ee132507';
$e = crypt($st, $salt);
?>
答案 0 :(得分:1)
通过定义散列和pigeonhole principle,是的,任何散列都会产生冲突。良好散列的一个定义特性是两个输入产生相同输出的可能性很低,在实践中可以忽略不计。
话虽如此,相同的输入将始终产生相同的输出(另一个定义散列的质量),并且如果您将使用静态盐作为输入并且相对很少更改&#34;随机&#34;像time()
这样的值(它只会每秒变化,这在计算中是永恒的),产生碰撞的几率更高。
我无法评论这里哈希的正确用法,因为我不知道你想用它做什么。