盐值加密介绍

简单说就是为了使相同的密码拥有不同的hash值的一种手段 就是盐化
MD5自身是不可逆的 但是目前网路上有很多数据库支持反查询
如果用户密码数据库不小心被泄露 黑客就可以通过反查询方式获得用户密码
或者对于数据库中出现频率较高的hash码(即很多人使用的)进行暴力破解(因为它通常都是弱口令)

盐值就是在密码hash过程中添加的额外的随机值
比如我的id是癫ω倒④ゞ  密码是123456 存在数据库中的时候就可以对字符串“123456/癫ω倒④ゞ ”进行hash,而验证密码的时候也以字符串“(要验证的密码)/癫ω倒④ゞ ”进行验证
这样有另外一个笨蛋密码是123456的时候 依然能构造出不同的hash值 并且能成功的验证
这时候我的id就作为盐值 为密码进行复杂hash了 

所以么。。盐值的作用是减少数据库泄露带来的损失

如果你RP非常好 猜中了我的密码是123456 我也阻止不了你啊→_→

什么叫盐值加密 Spring security怎样进行盐值加密 


以前的md5原理是 

密码密文=md5算法(密码明文); 

这样明文与密文其实还是一一对应的 

那么人家就可以用字典攻击(就是一个一个的试)来探测密码 



加盐(盐值加密)的算法很多 

Spring security用的是: 

密码密文=md5算法(密码明文{盐值}); 

这个盐值就可以自己随便设置了,弄一个静态字符串或者用用户的登录名 

举个例子: 

用户名:thr 

密码:fou 

用用户名作为盐值 

打开网页:http://www.md5.org.cn/md5/Encrypt.asp 

输入:thr{fou} 

得到密文:5dbae131e3eea6ce50068aab9292c8c3 



OK.应该明白了 

你可能感兴趣的:(IT技术基础,J2EE开发基础)