【发布时间】:2025-08-15 11:00:01
【问题描述】:
鉴于经验法则是存储密码字符串的加盐哈希,而不是加密形式,为什么 PHP crypt() 函数使用基于 DES 的算法? DES不是加密算法吗?说明书上说
... crypt() 将使用基于标准 Unix DES 的算法或系统上可能可用的替代算法返回一个散列字符串...
我从这里了解到的是crypt() 只使用系统实现的算法。当然,DES 是作为加密算法实现的,而不是用于 crypt 的自定义散列算法。
PS - 我知道 DES 早在过去,没有人应该再使用它了。
【问题讨论】:
-
这个问题似乎离题了,因为它是关于为什么 php 的作者选择像他们那样编写函数的原因。
-
是的,DES 是一种加密算法。但 Blowfish 也是如此,它是 bcrypt 的基础!不过,在不小心给你错误信息之前,我要弄清楚事物是如何相互反馈的,以使它们成为哈希算法。
-
@Dagon:这是一个非常有效的问题。你的亲密理由没有任何意义。
标签: php encryption hash des crypt