专栏名称: 聊聊架构
在这里煮酒聊架构。
目录
相关文章推荐
高可用架构  ·  微信读书后台架构演进之路 ·  8 小时前  
架构师之路  ·  全球软件工程技术大会,送福利! ·  23 小时前  
字节跳动技术团队  ·  IJCAI 25 | ... ·  昨天  
架构师之路  ·  美团的童鞋,有个问题麻烦您帮忙看一下... ·  昨天  
高可用架构  ·  这家公司对网关性能的优化历程,在 ... ·  2 天前  
51好读  ›  专栏  ›  聊聊架构

常见的用户密码加密方式以及破解方法

聊聊架构  · 公众号  · 架构  · 2016-10-14 19:36

正文

请到「今天看啥」查看全文


  • 特殊的单向HASH算法,由于单向HASH算法在保护密码方面不再安全,于是有些公司在单向HASH算法基础上进行了加盐、多次HASH等扩展,这些方式可以在一定程度上增加破解难度,对于加了“固定盐”的HASH算法,需要保护“盐”不能泄露,这就会遇到“保护对称密钥”一样的问题,一旦“盐”泄露,根据“盐”重新建立彩虹表可以进行破解,对于多次HASH,也只是增加了破解的时间,并没有本质上的提升。

  • PBKDF2算法,该算法原理大致相当于在HASH算法基础上增加随机盐,并进行多次HASH运算,随机盐使得彩虹表的建表难度大幅增加,而多次HASH也使得建表和破解的难度都大幅增加。使用PBKDF2算法时,HASH算法一般选用sha1或者sha256,随机盐的长度一般不能少于8字节,HASH次数至少也要1000次,这样安全性才足够高。一次密码验证过程进行1000次HASH运算,对服务器来说可能只需要1ms,但对于破解者来说计算成本增加了1000倍,而至少8字节随机盐,更是把建表难度提升了N个数量级,使得大批量的破解密码几乎不可行,该算法也是美国国家标准与技术研究院推荐使用的算法。

  • bcrypt、scrypt等算法,这两种算法也可以有效抵御彩虹表,使用这两种算法时也需要指定相应的参数,使破解难度增加。

  • 下表对比了各个算法的特性:

    算法 特点 有效破解方式 破解难度 其它
    明文保存 实现简单 无需破解 简单
    对称加密 可以解密出明文 获取密钥 需要确保密钥不泄露
    单向HASH 不可解密 碰撞、彩虹表
    特殊HASH 不可解密 碰撞、彩虹表 需要确保“盐”不泄露
    Pbkdf2 不可解密 需要设定合理的参数
    用户密码破解






    请到「今天看啥」查看全文