md5加盐的目的
- 可以防止底层人员和外部入侵能查看到数据库的用户密码,进行密码加盐处理,使得用户的密码泄露时不能通过彩虹表等手段容易破解得到明文
- 在用户登录时,传输密码再次加盐,使得用户入侵者就是拿到前端已经加盐的哈希值也不能与后台数据库的哈希值想对应
注册时在js前端加盐(这时候的加密密码直接存到数据库里面)
//num:用户账号 pass:用户密码明文(其中num认为是盐slot)
let pwd = md5(num+md5(pass));登录时加盐
登录时密码流程:
1、密码先以注册的时的形式(账号为盐)加盐,得到的结果就是与数据库一样的加密值
2、将以上的加密值再加入时间戳为参数(秒/10),加密以上的加密值,传输到后台
3、PHP重复第二步骤,将该用户的数据库密码值以第二步加密,然后比较前台请求的加密数据是否与后台的相等
//js前端登录密码加密:
var timestamp =parseInt(Date.parse(new Date())/10000);
let pw = md5(num+md5(pass));
let pwd = md5(pw+timestamp);
//php后台密码处理:
$time = intval(time()/10);
$pw =$userInfo['u_pwd'].$time;
$pwd = md5($pw);版权声明:本文为qq_38086247原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。