在加密变量时,PHP crypt函数是否可以生成两个相同的哈希值

时间:2013-03-14 17:15:56

标签: php encryption

这样的代码可以生成两个相同的哈希值吗? (假设时钟正确)

 <?php
 $t = time();
 $u = $_POST['username'];
 $st = $t.$u
 $salt = 'c5ac71cd162840eb7a4c2035ee132507';
 $e = crypt($st, $salt);
 ?>

1 个答案:

答案 0 :(得分:1)

通过定义散列和pigeonhole principle,是的,任何散列都会产生冲突。良好散列的一个定义特性是两个输入产生相同输出的可能性很低,在实践中可以忽略不计。

话虽如此,相同的输入将始终产生相同的输出(另一个定义散列的质量),并且如果您将使用静态盐作为输入并且相对很少更改&#34;随机&#34;像time()这样的值(它只会每秒变化,这在计算中是永恒的),产生碰撞的几率更高。

我无法评论这里哈希的正确用法,因为我不知道你想用它做什么。