加密
封装一个方法进行盐值加密:
//定义一个md5算法的加密处理
private String getMD5Password(String password,String salt){
//md5加密算法方法的调用
//3次加密
for (int i = 0; i < 3; i++) {
password=DigestUtils.md5DigestAsHex((salt+password+salt).getBytes()).toUpperCase();
}
//返回加密之后的密码
return password;
}
使用封装方法进行加密:
//密码加密处理的实现:md5算法的形式
//(串+password+串)
String oldPassword = user.getPassword();//oldpassword为前端传来的注册密码
String salt = UUID.randomUUID().toString().toUpperCase();//salt设置的盐值,取自uuid
//补全数据:盐值记录
user.setSalt(salt);//记录,方便登录时使用
String md5Password = getMD5Password(oldPassword, salt);//调用MD5盐值加密方法
user.setPassword(md5Password);。//存储进行盐值加密后的密码
解密
不是真正意义上的解密,是将用户登录时输入的密码进行相同的MD5盐值加密后,判断和数据库中的密码是否相等