PHP crypt()函数每次都返回相同的加密字符串

时间:2013-11-27 08:02:51

标签: php encryption

我正在使用PHP进行加密,并在使用SALT时发现了crypt()的这个错误。

这就是我使用它的方式。

echo crypt('hellow@stg', 'azraar'); //azbFcR.LdN/SM

echo crypt('hellow@stg1', 'azraar'); //azbFcR.LdN/SM

echo crypt('hellow@stg0', 'azraar'); //azbFcR.LdN/SM

echo crypt('hellow@stg2', 'azraar'); //azbFcR.LdN/SM

如您所见,我使用的SALT是 azraar ,每次打印 azbFcR.LdN / SM

链接到crypt() doc,http://php.net/manual/en/function.crypt.php

我对PHP的这种行为感到困惑。这很奇怪?

1 个答案:

答案 0 :(得分:6)

http://php.net/manual/en/function.crypt.php

  

标准的基于DES的crypt()返回salt作为输出的前两个字符。它也只使用str的前八个字符,所以较长的字符串以相同的八个字符开头将产生相同的结果(当使用相同的盐时)。