我们知道,系统保存用户的密码时,一般不会直接保存下密码,而是通过md5加密后保存;
md5加密原理:Orz
md5已经是一种十分安全的加密方法了,但是通过彩虹表依旧可以破解(彩虹表原理),那么我们伟大机智的程序员们就想出了在密码后加一段序列然后再md5加密的方法,这个后面加上的序列就是所谓的 “ 盐 ” 。
具体的流程是:
用户注册时:
1、用户在网站注册时提供ID与口令
2、系统随机为用户分配盐值
3、盐值插入口令后进行hash
4、将ID,hash值与盐值存入数据库
身份验证时:
1、用户提供ID与口令
2、系统在数据库中通过用户提供的ID查找HASH值与盐值
3、将盐值插入用户提供的口令后进行HASH
4、将HASH值与数据库中的HASH值比较,相等则验证成功,反之验证失败
关于这个 “盐值” 的储存:详细过程