CRYPT()和MD5()有什么区别?

时间:2018-09-26 10:25:42

标签: php passwords md5 crypt cryptographic-hash-function

当我们使用任何变量的CRYPT()方法时。

$test = 'password';

echo CRYPT($test);

结果

$1$g9s9ZdtF$sBBiBc4PdljOL4sDLx4CK.

当我们使用相同变量的MD5()方法时。

$test = 'password';

echo MD5($test);

结果

5f4dcc3b5aa765d61d8327deb882cf99

现在,这两个答案有什么区别?

1 个答案:

答案 0 :(得分:0)

crypt()是一个从纯文本和(随机生成或提供的)盐值创建密码哈希的函数。它可以使用多种底层哈希算法,例如DES,MD5,Blowfish或SHA。

使用“加盐”密码意味着相同的纯文本输入并不总是产生相同的哈希。因此,您不能说“在它成为'abc123'之前,我已经看到过该哈希值。”

由于它在libc中可用,几乎所有编程语言和数据库服务器中都有crypt()函数,因此它具有很高的互操​​作性。 它的安全性仅取决于您选择的哈希算法(在哈希的一部分中指定)。

有关更多信息,请参见https://en.wikipedia.org/wiki/Crypt_(C)