当我们使用任何变量的CRYPT()方法时。
$test = 'password';
echo CRYPT($test);
结果
$1$g9s9ZdtF$sBBiBc4PdljOL4sDLx4CK.
当我们使用相同变量的MD5()方法时。
$test = 'password';
echo MD5($test);
结果
5f4dcc3b5aa765d61d8327deb882cf99
现在,这两个答案有什么区别?
答案 0 :(得分:0)
crypt()是一个从纯文本和(随机生成或提供的)盐值创建密码哈希的函数。它可以使用多种底层哈希算法,例如DES,MD5,Blowfish或SHA。
使用“加盐”密码意味着相同的纯文本输入并不总是产生相同的哈希。因此,您不能说“在它成为'abc123'之前,我已经看到过该哈希值。”
由于它在libc中可用,几乎所有编程语言和数据库服务器中都有crypt()函数,因此它具有很高的互操作性。 它的安全性仅取决于您选择的哈希算法(在哈希的一部分中指定)。
有关更多信息,请参见https://en.wikipedia.org/wiki/Crypt_(C)