[摘录]加盐密码哈希:如何正确使用

点这里阅读原文

碰撞攻击的出现表明很可能有一个和用户密码不同的字符串却和它有着相同的哈希值。然而,即使在MD5这样脆弱的哈希函数中找到碰撞也需要耗费大量的计算,因此这样的碰撞“意外地”在实际中出现的可能性是很低的。于是站在实用性的角度上可以这么说,加盐MD5和加盐SHA256的安全性是一样的。不过可能的话,使用本身更安全的哈希函数总是好的,比如SHA256、SHA512、RipeMD或者WHIRLPOOL。
正确的做法:恰当使用哈希加密

基本要素:加盐哈希

忠告:你不仅仅要用眼睛看文章,更要自己动手去实现后面讲到的“让密码更难破解:慢哈希函数”。

盐值应该使用基于加密的伪随机数生成器(Cryptographically Secure Pseudo-Random Number Generator – CSPRNG)来生成。
我们显然不希望自己的盐值被猜测到,所以一定要使用CSPRNG。

存储密码的步骤
使用CSPRNG生成一个长度足够的盐值
将盐值混入密码,并使用标准的加密哈希函数进行加密,如SHA256
把哈希值和盐值一起存入数据库中对应此用户的那条记录

校验密码的步骤
从数据库取出用户的密码哈希值和对应盐值
将盐值混入用户输入的密码,并且使用同样的哈希函数进行加密
比较上一步的结果和数据库储存的哈希值是否相同,如果相同那么密码正确,反之密码错误。

让密码更难破解:慢哈希函数
为了降低攻击者的效率,我们可以使用一种叫做密钥扩展的技术。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 〇、序言 货币由于其天然属性决定了其与安全不可分割的联系,从最早的金库、保险柜、镖局到后来的ATM机、运钞车;从存...
    怒马2048阅读 39,185评论 4 79
  • 所有货币都需要一些方法来控制供应,并强制执行各种安全属性以防止作弊。在法定货币方面,像中央银行这样的组织控制货币供...
    Nutbox_Lab阅读 3,185评论 1 3
  • 这篇文章主要讲述在Mobile BI(移动商务智能)开发过程中,在网络通信、数据存储、登录验证这几个方面涉及的加密...
    雨_树阅读 2,737评论 0 6
  • 男人不可百日无姜!女人不可百日无糖! 我国中医建议女性朋友,在日常生活中应该多喝一些红糖生姜水,因为它能够让妇...
    红粉蓝颜阅读 428评论 0 0
  • 我搬到满天星生活已经有半个月了,刚来时是三月初,还有些冷,这几天明显气温变暖,前两天还看到路边的小草冒出了头,...
    烟然s阅读 452评论 3 5