两大加密算法Bcrypt和MD5区别


MD5

  MD5是一种被广泛使用的密码散列函数,不可逆(法从密文推出原文),但是HASH 算法最大的问题是,会发生撞库,也就是说,有可能出现多个原文得到同一个密码。

  一种攻击方法是,攻击者记录了一张巨大的密码库,预先计算了常用密码的 hash 值,这样只需要搜索 hash 值就能寻找到一个合适的密码用于登录。这就是被彩虹表攻击。

  解决彩虹表的问题是加盐,在加密之前,对原文混入其他信息,混入的信息不存放到数据库中。实际寻找到其他原文也无法登录。

 

Bcrypt

Bcrypt 有两个特点

  1.每一次 HASH 出来的值不一样

  2.计算非常缓慢

因此使用 Bcrypt 进行加密后,攻击者想要使用算出 M2 成本变得不可接受。但代价是应用自身也会性能受到影响,不过登录行为并不是随时在发生,因此能够忍受。对于攻击者来说,需要不断计算,让攻击变得不太可能。

因此推荐使用 Bcrypt 进行密码加密


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM