最近爆出的网站安全问题越来越多,甚至有部分网站的密码泄露,这是一篇简单的教程,教你如何更加安全的保存密码。我这里说的“安全”是指当密码泄露以后,对方需要相当一段时间来破解以获得明文密码。
下面我列出了常用的密码存储手段,从不安全到安全:
明文存储
hash 存储,例如 MD5,SHA,SHA256
hash 加盐(salt)存储
使用 bit/key stretching 机制
大家已经知道,即使是大型网站例如 Linked-In,存储密码也是简单的 hash。我认为这是一个严重的疏漏。我们有很多方法来加强密码的存储以防止暴力破解和 彩虹表。在这里,我要大声的说一遍,仅仅加盐(salt)是不够的!
首先让我们来看看不同的技术出现的时间:
明文存储:有史以来
hash 存储:20世纪70年代早期
加盐 hash:20世纪70年代晚期
bit/key stretching: bcrypt 2002, scrypt 2009, PBKDF2 2009
不同技术的耐破解程度
Technique / KDF | Year | Bruteforce | Dictionnary | RT | GPU | FPGA | ASIC | |
Hash | 1970 | No | No | No | No | No | No | |
Salted Hash | 1976 | No | No | Yes | No | No | No | |
PBKDF2 * | 2000 | Yes | Yes | Yes | Partial | No | No | |
Bcrypt | 2002 | Yes | Yes | Yes | Yes** | ?? | No | |
Scrypt * | 2009 | Yes | Yes | Yes | Yes** | Yes | Yes |
RT - Rainbow Table 彩虹表 在一年内破解一个密码的开销
Technique / KDF | 6 LL | 8 LL | 8 chars | 10 chars |
DES CRYPT | < 1$ | < 1$ | < 1$ | < 1$ |
MD5 | < 1$ | < 1$ | < 1$ | 1.1K$ |
MD5 CRYPT | < 1$ | < 1$ | 130$ | 1.1M$ |
PBKDF2 (100ms) | < 1$ | < 1$ | 18k$ | 160M$ |
bcrypt (95ms) | < 1$ | 4$ | 130K$ | 1.2B$ |
scrypt (64ms) | < 1$ | 150$ | 4.8M$ | 43B$ |
PBKDF2 (5.0s) | < 1$ | 29$ | 920K$ | 8.3B$ |
bcrypt (3.0s) | < 1$ | 130$ | 4.3M$ | 39B$ |
scrypt (3.8s) | 900$ | 610K$ | 19B$ | 175T$ |
解释:
摘要+每用户盐+全局盐
摘要即md5,sha1,sha256.. 每用户盐增加单用户暴力破解的成本,避免通过已被攻破的本站其他用户继续攻击 全局盐增加本站全用户暴力破解的成本,避免通过其他使用相同摘要方式被破解网站的信息来攻破本站 ######利用32位古文+SHA256+加密因子(也是32位古文) 基本上被破解的概率为0######有例子或这案例么?或者写个博客吧######同问.什么叫古文?之乎者也?与数字有什么差别.######有具体的方法或者案例呢?######没看明白 ,怎么样才能安全 密码!?######有好的安全的存储密码的例子吗?######用彩虹表的话加salt也是白搭。如果知道加密方式,什么加密都是白搭。######要给每个用户加不同的盐,每次改密码盐要换。这样除非给每个用户构建一个彩虹表才能反推。######salt对彩虹表是可以阻止的, 看那个Yes.######我就不明白了,干什么要破人家的密码?干吗要盗密码?吃饱了撑的!######利字当头啊######闭上眼睛,连续无规律敲击键盘100次,这个盐够强大了吧 ######SHA512 安全吗?一直用这个~~~######可以利用改良的Hash算法,这样的话如果改良方式没有泄漏,即使被拿到也不会被破解。 举例:将MD5密文映射到ASCII所有可见字符。 另外,如果用户的用户名/密码都是一对,即使再强的加密算法也是白扯,毕竟你不能保证所有其他站点的加密算法都很强大。######更多的是密码策略
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。