salt值(盐值)
SALT值属于随机值。⽤户注册时,系统⽤来和⽤户密码进⾏组合⽽⽣成的随机数值,称作salt值,通称为加盐值。
1、背景:系统通常把⽤户的密码如MD5加密后,以密⽂形式保存在数据库中,来防⽌⿊客偷窥。
记住我
2、产⽣:随着对MD5密⽂查询⼯具的出现,⽽很多⽤户的密码⼜设置简单,单纯的对⽤户密码进⾏MD5加密后保存,⽤密⽂很容易就能反查询得到某⽤户的密码。
3、原理:为⽤户密码添加Salt值,使得加密的得到的密⽂更加冷僻,不宜查询。即使⿊客有密⽂查询到的值,也是加了salt值的密码,⽽⾮⽤户设置的密码。salt值是随机⽣成的⼀组字符串,可以包括随机的⼤⼩写字母、数字、字符,位数可以根据要求⽽不⼀样。
4、⽤途:当⽤户⾸次提供密码时(通常是注册时),由系统⾃动添加随机⽣成的salt值,然后再散列。⽽当⽤户登录时,系统为⽤户提供的代码撒上同样的加盐值,然后散列,再⽐较散列值,已确定密码是否正确。
5、其它:经过添加salt值处理的密码,即使⽤户设置的原密码是相通的,数据库中的密⽂却是不同的。
引:
单向散列加密
salt
|
V
-----明⽂---->  单向散列算法 ----->密⽂
为了加强单向散列计算的安全性,会给散列算法加点盐(salt),salt相当于加密的密钥,增加破解的难度。常⽤的单向散列算法有MD5、SHA 等。
单向散列算法还有⼀个特点就是输⼊的任何微⼩变化都会导致输出的完全不同,这个特性有时也会被⽤来⽣成信息摘要、计算具有⾼离散程度的随机数等⽤途。