sha、md5、decupt与加盐结合
来源:互联网 发布:斐讯efa中文安卓编程 编辑:程序博客网 时间:2024/05/20 01:34
前几天面试时提到了如何保证密码安全,我说了md5、sha。但面试官还是不太满意。因为有这几点原因:
- 由于MD5历史悠久,大量彩虹表的出现已经使得单纯的MD5运算已经比较容易被破解。
- sha与md5结合,也只是将上述步骤稍微复杂了一点,因为破解这种密码的成本会越来越低,计算出来的结果也会很有价值。
- 在被拖库后,salt也会被拿到,使用彩虹表加salt可以制作新的彩虹表。
- md5本身问题。山大王小云教授已经证明md5是可能被碰撞的。
当然,以上述方式破解密码的工作量是非常庞大的,这样做是否有价值也先不讨论,我们只讨论理论上的可能性。
加随机盐
这也是初学者比较容易遇到的问题,认为给密码加上一个固定字符串,就可以避免彩虹表的攻击。但是这样的话,黑客只要基于这个规则MD5(password+string)运算一次,就可以得到一个密码库,来破解所有用户的密码。
但是,如果给每一个用户加不同的str后缀,也就是加随机盐,黑客在破解的时候,就要为每一个用户创建一个密码库,这样在他破解一个用户密码后,得到的密码库无法继续使用。极大地增加了破解成本。
当然,如果黑客得到了你的库,这个方法就没什么意义了。
bcrypt加随机盐
这个方式比上一个优势更大的地方在于,黑客即使得到了你的salt盐库,自己制作密码库的时间将无限增加,因为bcrypt可以控制每秒只计算出三个密码。
另外,初始密码在客户端肯定会经过一层md5加密,建议更改为sha-2加密。
0 0
- sha、md5、decupt与加盐结合
- MD5与SHA算法
- MD5与SHA算法
- MD5与SHA加密算法
- MD5加盐。
- MD5加盐
- MD5加密算法与SHA加密算法
- MD5加密与SHA加密
- MD5加密算法与SHA加密算法
- MD5加密算法与SHA加密算法
- MD5 SHA
- SHA/MD5
- JAVA加密技术-----MD5 与SHA 加密
- BASE64与单向加密算法MD5&SHA&MAC
- SHA-1 加密(与MD5的区别)
- MD5与SHA-512加密C#实现
- MD5密码加盐处理
- MD5加盐处理
- 值迭代、策略迭代
- 锚点使用总结
- 一次完整的HTTP事务是怎样一个过程?
- 利用jquery对MVC输出的json对象进行处理,修改日期格式及取字符串的一部分
- -01-摄像头DVP输入IP核设计【OV5640】
- sha、md5、decupt与加盐结合
- UVA 548 根据中序和后序建立二叉树并求根到叶的最短路
- EClipse 出现错误 The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path
- linux下C语言多线程(第一篇)创建线程
- CentOS 6.8源码安装Redis
- Redis命令
- Scala范型
- SSH整合所遇到的问题(一)
- 面向对象语言设计六大原则