PHP的crypt函数为什么使用DES加密算法



既然经验法则是存储密码字符串的加盐散列,而不是密码字符串的加密形式,那么为什么PHP crypt()函数使用基于des的算法呢?DES不是一种加密算法吗?手册上写着

…crypt()将使用基于Unix des的标准算法或系统上可用的替代算法返回一个散列字符串…

我从这里理解的是crypt()只使用系统实现的算法。当然,DES是作为加密算法实现的,而不是用于加密的自定义散列算法。

PS -我知道DES已经过时了,没有人应该再使用它了。

基于des的密码散列的思想基本上是用密码加密一个零块,并传递一些轮数的盐。任何半体面的加密都会使密钥难以恢复,即使面对已知的明文,所以这就是为什么可以从加密函数中生成强密码哈希。

认为 PHP默认值与此方案兼容

最新更新