关于系统密码存储

安全的密码存储保证,用户的明文密码永远不会暴露给除用户本人外的其他人,尤其是被“脱裤”时不会暴露给攻击者。

以下是关于一些系统保存密码的总结:

1.加密存储——不可以

加密的过程是可逆的,开发者一定了解加密的方法,因此这种方法只是保证系统外部的人员无法了解密码,实际上倘若系统的加密算法泄露,那么所有的密码跟明文存储没有任何区别,此时密码的安全性等同于加密方法的安全性。

2.Hash存储——通常使用的方法,但依然有缺陷

通常是用的Hash算法包含MD5,SHA-1,SHA-256等 算法,通常明文密码经过Hash后得到的结果我们称之为摘要(digest)。相同明文密码Hash后的摘要是相同的,这也是我们验证密码的方法,因此攻击者建立一个明文密码+对应摘要的表(称之为彩虹表)暴力试验,当摘要匹配后即可得到明文密码。为了防止这种简单的撞击破解,通常在Hash前的明文密码中引入“随机因素”成为salt,这样即便是相同的明文密码的Hash结果也是不同的,在这种情况下,明文密码的安全性取决于salt的安全性。

3.专家级Hash存储——可行,但系统负担大

BCRYPT、SCRIPT、PBKDF2是专门为密码设计的Hash算法。这类算法有一个特点,算法中都有个因子,用于指明计算密码摘要所需要的资源和时间,也就是计算强度。计算强度越大,攻击者建立rainbow table越困难,以至于不可继续。也就是说,故意延长一个密码匹配的计算时间,如果一个密码匹配需要1秒钟,那么匹配1000万个密码组合就需要115天,这个开销就非常大,有效防止攻击者玻璃破解。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 7,982评论 0 6
  • 现在比较流行的密码存储是对密码明文做 HASH运算,把得到HASH值存储到数据库中。验证过程就是再次对用户发过来的...
    JSON_NULL阅读 8,895评论 4 7
  • 存储设计 设计原则: 密码存储必须杜绝获取明文之可能 用户的密码通常具有一定规律,一般用户会对若干不同账户使用相同...
    吃土的汉子阅读 5,199评论 0 0
  • 今晚因为偶然的机会了解到简书这一APP,感觉不错就安装了。可能是因为自己一直有一些话无处倾诉,需要这么个平台讲自己...
    中成药阅读 1,562评论 0 0
  • 一言不合,先放一张毕业照回味下 大家好! 千呼万唤的同学会终于整装待发于下周六开展咯 夏天小编就叫你们该整容的整容...
    喵女神喵阅读 2,738评论 1 0

友情链接更多精彩内容