11|忘记加“盐”:加密结果强度不够吗?
王昊天
你好,我是王昊天。今天我来和你一起来聊聊“盐”。
什么是盐?
食盐是一种调味品,可以在烹饪食物时添加到菜肴中,给寡淡的食材增添风味。恰好我对烹饪也有一点研究,所以对食盐的作用也稍有理解。食盐是菜品中咸味的主要来源,在烹饪中加入适量的食盐,一方面可以提鲜,另一方面也可以去除掉原料的一些异味。
那么盐和安全有什么关系呢?
盐又称为 Salt,在密码学中我们常常会用到散列算法对字符串进行处理,散列算法可以为数据创建相对精简的数据指纹,具体我们会在后面详细介绍。为了提高安全性,在进行散列操作之前会对字符串进行一些拼接、混淆操作,这个过程我们就称为“加盐”。虽然不知道“加盐”的本意是否如此,但加盐处理字符串的过程与使用盐处理食物的过程非常相似,一方面去除了字符串本身的特征,另一方面增强了字符串的复杂度。
经过加盐处理的散列结果与未加盐处理的散列结果,极大概率是不相同的,这一过程大大提高了散列算法的安全性。
HASH
在了解调味品该如何使用之前,我们要先了解原材料是什么。因此,在了解如何用盐之前,我们先来了解 HASH 函数是什么。
HASH 函数,又称散列函数,是为一段数据创建数字指纹的方法,创建生成的数字指纹叫散列值。由于经过了压缩,它的长度较原始输入短了很多,因此我们也称之为摘要。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
本文深入探讨了密码学中盐的重要性以及在用户账户认证过程中的作用。通过分析HASH链和彩虹表攻击的原理和应用,以及预计算的HASH链集和彩虹表的区别,读者可以快速了解盐在密码学中的重要作用,以及密码破解方式的难度和效果。文章还讨论了预计算HASH链集的性能表现和优化核心点,以及彩虹表的设计理念和使用方法。此外,文章还介绍了安全实践中的密码存储方案,从简单到高级的安全级别选择,以及加盐对密码存储安全性的提升作用。通过实战案例演示了彩虹表攻击的成功完成,以及最佳安全实践中加盐对密码存储安全性的提高。最后,文章总结了HASH函数、盐、散列函数应用和安全最佳实践,为读者提供了丰富的知识和装备,使其在安全领域进一步探索前行,发现更多密码学领域的秘密。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Web 漏洞挖掘实战》,新⼈⾸单¥59
《Web 漏洞挖掘实战》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(4)
- 最新
- 精选
- DoHer4S我是这么理解的,因HASH函数计算不可逆,只能通过构建广泛的HASH链进行爆破(其实也是碰撞),能不能碰撞出原始密码的原值的关键取决于HASH链中的中间由R函数产生的链值,因为只有R函数生成的值才拥有原值,这种概率非常非常小,需要构建非常长的HASH链才可能碰撞出中间拥有原始输入值的HASH链; 如果原始输入与HASH链头或者尾部发生碰撞,记为hash_1,从构建HASH链的目的出发,可以理解为该HASH链为某条HASH链的碰撞链(子链),因为我们最终需要知道R函数产生的值的HASH值,即生成该子链R函数的值; 因此为保证HASH的独特性(unique),则 hash_1 其实为某条HASH链的碰撞子链,只能说存在的可能性很高,并不一定在该HASH链中;2022-01-172
- E-N泪目,我看到 md5 也总是第一个想起梦幻,刻在 DNA 里的下载页面2022-01-271
- ifelse课后问题,是因为hash碰撞吗?2023-03-10归属地:浙江
- E-N文末的问题,其实是由于 R 函数的输出空间是固定的,输入不同的 hash 值也可能得到相同的计算结果。 假设待破解的值是 h0,如果存在 h1,使 R(h1) = R(h0),那我们碰撞的链条可能是含 h1 的链条而不是 h0 的链条,而 hash 值不同,对应的明文肯定是不同的,因此无法实现破解。2022-01-27
收起评论