我对 crypt() 有一种奇怪的行为。这是我在 Zend 中的代码:
$correct_password_hash = $this->getHelper('User')->generateHash('bd468cffe6b179d8e5ef30bd993d37e5','572906092501a20f4222a54.54479708');
$edited_password_hash = $this->getHelper('User')->generateHash('bd468cffe6b179d8e5ef30bd993d37e','572906092501a20f4222a54.54479708');
echo "Correct Password Hash - ".$correct_password_hash."<br/>";
echo "Edited Password Hash - ".$edited_password_hash;
我将一个 md5 生成的字符串作为第一个参数传递给辅助函数 generateHash,并将一个盐作为第二个参数。我将生成的哈希存储在 $correct_password_hash 变量中。
现在在对同一个辅助函数的第二次调用中,我刚刚删除了第一个参数末尾的字母 5。第二个参数是一样的。但它仍然生成与第一个相同的哈希。
这是输出:
正确的密码哈希 - 57CO1Lzyk81kk
编辑的密码哈希 - 57CO1Lzyk81kk
助手 generateHash 如下:
public function generateHash($md5, $salt)
{
return crypt($md5, $salt);
}
这是 crypt() 应该如何工作的吗?
谢谢。