在SHA-1和MD5被发现了漏洞之后,使用它们作为基于密码的密钥派生功能(PBKDF2)还是否安全

我记得是安全的,只要PBKDF2确实是用作密钥派生。
参考:Is PBKDF2-HMAC-SHA1 really broken? 根据文中理由,PBKDF2对散列函数的要求是能抵御第一类原像攻击(给定一个散列函数的输出,难以找到一个能产生这一输出的输入),以及对于常见的密码,散列结果不要有太多碰撞。这两点我觉得MD5和SHA-1都还能满足:

Is MD5 second-preimage resistant when used only on FIXED length messages? 有回答提到对MD5的第一类原像攻击目前最好的纪录是2的123.4次方,只是比穷举2的128次方稍微好了一点点,但仍然不切实际。
RFC6194《Security Considerations for the SHA-0 and SHA-1 Message-Digest Algorithms》在2011年称,还不存在对完整版本SHA-1进行的第一和第二类原像攻击。

【在SHA-1和MD5被发现了漏洞之后,使用它们作为基于密码的密钥派生功能(PBKDF2)还是否安全】 当然,现在很多库都提供了更好的散列函数,新产品自然没有继续用这些的理由。

■网友
至少目前已知的 MD5 和 SHA-1 攻击手段还不足以用在 PBKDF2 上。所以暂时还是安全的。不过有什么必要非得用 MD5 呢?


    推荐阅读