什么是当前PHP中md5加密的功能性替换


What is a current, functional replacement for md5 cryptography in PHP?

我听说md5已经过时了。我的备选方案是什么?

非常感谢。

我建议您使用SHA-2系列。SHA-2散列函数族是SHA-1的当前替代品。SHA-2的成员分别称为SHA-224、SHA-256、SHA-384和SHA-512。

对于哈希,您基本上只想选择尽可能大的块大小,并使用salt值来避免彩虹攻击。

如果您需要在一个应用程序中替换MD5,在该应用程序中,首先使用哈希是一个糟糕的设计选择,其中包括许多与密码结合使用的功能(保护登录信息或从密码生成密钥),那么您不想只替换MD5;你想改变设计。

谷歌pbkdf2。PHP中有一些实现,它是一个完整密码保护的一站式商店。如果你只是对密码进行哈希处理,然后再处理它,md5比sha1差一点,sha1比sha256差一点等等,但它们都容易受到彩虹表的攻击。确保你至少使用了正确的盐析技术,要想真正做到这一点,你应该使用像pbkdf2这样的算法,其目的是使其计算密集到暴力(还有一点模糊,因为它需要攻击者知道你正在使用的迭代次数,而不仅仅是算法)。