0

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

$test = 'password';

echo CRYPT($test);

结果

$1$g9s9ZdtF$sBBiBc4PdljOL4sDLx4CK.

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

$test = 'password';

echo MD5($test);

结果

5f4dcc3b5aa765d61d8327deb882cf99

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

4

1 回答 1

0

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

使用“加盐”密码意味着相同的明文输入并不总是产生相同的哈希值。所以你不能说“我在'abc123'之前已经看到了这个哈希”。

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

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

于 2018-09-27T13:23:52.017 回答