为了账号安全,请及时绑定邮箱和手机立即绑定

针对密码泄漏事件,都有哪些相对安全的密码加密规则?

/ 猿问

针对密码泄漏事件,都有哪些相对安全的密码加密规则?

芜湖不芜 2018-10-03 21:30:28

对于 CSDN 明文存储密码并测漏一事,我实在无力吐槽。

传统的直接md5(password)弱爆了,密码字典一下子就查出来了。所以,希望大家能给我提供一些值得在今后开发中使用的密码加密规则。

我常用的方法是用户提交时,先用 JavaScript MD5 将密码在本地加密,提交到服务端,服务端取用户表中某个字段(比如注册时间)再加密一次md5(datetime+md5(password)),存储二次加密后的密码,自认为这样相对安全,但还是觉得有些许不妥,希望能指出。


查看完整描述

2 回答

?
慕森卡

首先用明文保存用户密码非常不道德,而且做法很业余,万一被攻破用户要改的地方就多了。

应该说纯粹的md5哈希也已经非常不安全了,现在黑客们从各个站暴库而流传的地下猜解字典已经非常大了。所以国内对用户密码的处理普遍还处在一个非常初级的阶段,你只能寄希望于黑客别找上你。

现在国外比较流行的对密码的处理方法主要是在md5的基础上,加上一个随机的扰码(salt),这样你的密码哈希后的值也是随机的了,即便被别人拿到这个值,也无法还原出你真实的密码。在php上有很著名的phpass库(http://www.openwall.com/phpass/),目前wordpress就是使用的这种方法。

对纯哈希的研究,除了使用位数更大的hash以外(现在sha算法已经可以做到512位),还可以使用blowfish这种使用密码算子的算法。我记得看过一片文章介绍这种算法,因为它使用算子做计算,你可以根据自己服务器的运算速度,选择一个合适的算子组合,这样你可以控制它的运算时间,比如说在我的服务器上我需要0.5秒才能hash出结果,那如果别人拿这个hash值去做碰撞实验,基本上是不可能的结果,即便是用超级计算机也很慢了。不过这种算法的缺点就是太耗cpu了,一般网站没什么必要。


查看完整回答
反对 回复 2018-10-14
  • 2 回答
  • 0 关注
  • 552 浏览
我要回答
慕课专栏
更多

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信