ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

什么是加盐密码?

2021-01-12 11:31:28  阅读:265  来源: 互联网

标签:暴力破解 什么 密码 加盐 哈希 md5 MD5


   生活中,我们为了保证密码的安全性,一般都不会使用明文存储,而是要将明文进行加密,然后再进行存储。假如我们的数据被拖库,代码被泄露,请求被劫持的情况下,也能保证用户的密码不被泄露,确保账号的安全性。

MD5

MD5信息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5由美国密码学家罗纳德·李维斯特(Ronald Linn Rivest)设计。
MD5这种不可逆的加密方法理论上很安全了,但是随着彩虹表的出现,使得大量长度不够长的密码可以直接从彩虹表里反推来。MD5算法无法防止碰撞(collision),也意味着它并不安全。

md5(md5(password) + salt)

为了改进MD5加密,机智的程序员就想,既然你可以反推出我的密码,那么只要我在我的短密码上加上一段很长的字符,再计算md5,这样你反推出原始密码就会变得非常困难。这段长字符就是我们所称的盐(Salt),通过这种方式加密的结果,我们称为加盐Hash

SHA512(SHA512(password)+salt)

在我们常用的哈希函数中,SHA-256、SHA-512会比md5更安全,更难以破解。通过上面的加盐哈希运算,即使攻击者拿到了最终结果,也很难反推出原始的密码。不能反推,但可以正着推,假设攻击者将 salt 值也拿到了,那么他可以枚举遍历所有 6 位数的简单密码,加盐哈希,计算出一个结果对照表,从而破解出简单的密码。这就是通常所说的暴力破解。

bcrypt(SHA512(password),salt,cost)

为了应对暴力破解,我们使用了加盐的慢哈希。慢哈希是指执行这个哈希函数非常慢,这样暴力破解需要枚举遍历所有可能结果时,就需要花上非常非常长的时间。既然无法阻止你暴力破解,那就控制你的时间。
通过调整 cost 参数,可以调整该函数慢到什么程度。假设让 bcrypt 计算一次需要 0.5 秒,遍历 6 位的简单密码,需要的时间为:((26 * 2 + 10)^6) / 2 秒,约 900 年。

标签:暴力破解,什么,密码,加盐,哈希,md5,MD5
来源: https://blog.csdn.net/weixin_38924500/article/details/112511343

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有