所谓加Salt,就是加点“佐料”。当用户首次提供密码时(一般是注册时),由系统自动往这个密码里加一些“Salt值”,这个值是由系统随机生成的,而且只有系统知道。而后再散列。而当用户登陆时,系统为用户提供的代码撒上一样的“Salt值”,而后散列,再比较散列值,已肯定密码是否正确。算法
这样,即使两个用户使用了同一个密码,因为系统为它们生成的salt值不一样,他们的散列值也是不一样的。即使黑客能够经过本身的密码和本身生成的散列值来找具备特定密码的用户,但这个概率过小了(密码和salt值都得和黑客使用的同样才行)。npm
npm install -S crypto
复制代码
import crypto from 'crypto'
methods:{
login(salt){
//salt经过API请求得到
let passMd5 = _this.getMD5(_this.formLogin.password.trim());
let pass = _this.getMD5(passMd5 + salt);
//登陆请求
}
getMD5(pass){
let md5 = crypto.createHash("md5");
md5.update(pass);
return md5.digest('hex')
}
}
复制代码
加盐密码保存的最通用方法是?bash