从数据库中取到的password已经加了盐了,可是这行代码还需要加盐嘛? 求解释一下这行代码的意思 authenticationInfo.setCredentialsSalt(ByteSource.Util.bytes("Mark"));
这一句是对用户输入的密码加密的,不是对从数据库中获取的密码加密的。这么做是为了和数据库的密码比对用的,使用相同的加密规则才会获得相同的加密结果,否则校验永远是不通过的。
加盐后 密码的复杂度高了,密文不好碰撞
麻烦问下,这一步加盐和不加有什么不同吗,数据库存的是密码和盐加密的密文,用户输入的是密码,后台设置的盐值是固定的,和不加盐有什么区别呢
这行代码是用户进行认证的时候,authenticationInfo设置加密盐值,然后经过md5算法,和数据库里面的密码比对。相同则认证成功。