关于用户密码安全的问题

查看 71|回复 2
作者:XiiLii   
为了保护用户密码,我知道服务器存储用户密码的方式是加盐后再哈希。
但是问题是服务器是需要获取用户明文密码后再进行处理的,如果服务器被黑客控制(不管通过什么方式),修改了代码,将用户登录后的明文密码窃取了下来,那么用户的密码就不安全了。(不讨论如何加强服务器的安全措施)。
可不可以在浏览器端就对用户的密码进行哈希加密?服务器只对这个哈希密码进行再加盐哈希存储。
这里又有个问题,就是用户输入密码后,生成的哈希值必须相同,否则服务器就无法验证了(或者有没有一种密码哈希算法支持这种不同密码的验证?),但这就给彩虹表攻击提供了机会,当然用户的密码也可以先加盐再哈希,但如果黑客连这个盐值也获取了,重新制作彩虹表也是可以的。
我想问下有没有更好的方案防止用户密码泄露?

密码, 哈希, 服务器, 用户

xuanbg   
想不通为什么“需要获取用户明文密码后再进行处理”。不是客户端加盐哈希给你,你只管存就行了吗?验证密码也是一样,你只管比对和你存数据库的那个字符串是否一致就行,你管他明文是什么。
xuanbg   
当然,要更安全一点的话,就是客户端给你密码的哈希值,然后你收到后再加盐哈希一次存起来。验证的时候也是客户端给你传密码的哈希值,你加盐哈希后再和数据库存的值进行比对。至于彩虹表,你想多了,只对弱密码有效。加盐就是为了保护弱密码的,如果你的盐泄露了,那这弱密码就失去了防护。那怎么办呢?简单得很,改成强密码呀。如果用户不想保护自己的账号,你也没必要替他操这个心。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部