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

密码加盐问题

从数据库中取到的password已经加了盐了,可是这行代码还需要加盐嘛?  求解释一下这行代码的意思
authenticationInfo.setCredentialsSalt(ByteSource.Util.bytes("Mark"));


正在回答

4 回答

这一句是对用户输入的密码加密的,不是对从数据库中获取的密码加密的。这么做是为了和数据库的密码比对用的,使用相同的加密规则才会获得相同的加密结果,否则校验永远是不通过的。

0 回复 有任何疑惑可以回复我~

加盐后 密码的复杂度高了,密文不好碰撞

0 回复 有任何疑惑可以回复我~

麻烦问下,这一步加盐和不加有什么不同吗,数据库存的是密码和盐加密的密文,用户输入的是密码,后台设置的盐值是固定的,和不加盐有什么区别呢

0 回复 有任何疑惑可以回复我~
#1

MartinKay

当然有区别,在别人不知道你盐设置的是什么情况下,有些人或许认为你没设置盐,黑客对你的站点感兴趣,则会使用暴力破解的方式来试出你用户中最弱的密码,正好那个用户账户上有钱,就会有意想不到的后果。但是暴力破解去碰撞密文时,在不知道有盐或盐是什么的情况下,是永远不可能被碰撞成功的
2019-02-26 回复 有任何疑惑可以回复我~
#2

慕标1154530

人家视频都说了,盐是一个随机数,他这里为了简便直接弄了个固定值给你演示一下。 你用UUID当做盐,然后就可以了。
2019-03-09 回复 有任何疑惑可以回复我~

这行代码是用户进行认证的时候,authenticationInfo设置加密盐值,然后经过md5算法,和数据库里面的密码比对。相同则认证成功。

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

密码加盐问题

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信