我正在使用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的这种行为感到困惑。这很奇怪?
答案 0 :(得分:6)
http://php.net/manual/en/function.crypt.php:
标准的基于DES的crypt()返回salt作为输出的前两个字符。它也只使用str的前八个字符,所以较长的字符串以相同的八个字符开头将产生相同的结果(当使用相同的盐时)。