为什么md5仍然被广泛使用

6 php security hash md5

首先,我应该说我对编程比较陌生,所以如果这是一个天真或愚蠢的问题,请对我温柔.

好的,所以我正在编写一个小应用程序,其中一部分将涉及散列用户密码.在研究了最佳方法之后,md5作为一种建议出现,几乎与批评其使用的文章中出现的次数相同.

替代品是SHA-1等,它们更强,更不容易被破解.这很有道理.

为了达到目的:

  1. 为什么md5仍然广泛用于散列
  2. 我是否应该自动为散列密码折扣md5,或者是否存在其使用实际上比其他散列机制更好的特定用例?

Mar*_*ers 8

MD5和SHA-1都不应用于散列密码.它们旨在快速计算,这正是您不想要的.如果人们使用这些散列算法来散列密码,可能是因为他们不知道替代品.

相反,你应该使用专门为此目的设计的像bcrypt这样的东西.它可以配置为您需要的计算难度.随着计算机变得越来越快,您可以在计算中添加更多轮次以使其花费更长时间.这将减慢攻击哈希并试图使用暴力破解或基于字典的攻击来获取密码的攻击者.

有关

  • @giorgio:Wordpress允许管理员配置使用哪种散列方案.它在实现中使用[phpass](http://www.openwall.com/phpass/)(大约[5年前](http://core.trac.wordpress.org/ticket/2394)).来自phpass文档:"phpass支持的首选(最安全)哈希方法是OpenBSD风格的基于Blowfish的bcrypt".但是我怀疑很少有人真的费心阅读文档. (3认同)