两大加密算法Bcrypt和MD5区别

MD5

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

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

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

 

Bcrypt

Bcrypt 有两个特点

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

  2.计算非常缓慢

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

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

posted @ 2020-08-17 18:05  uzxin  阅读(2587)  评论(0编辑  收藏  举报