写在前面
上一篇文章我们进行了用户注册-业务层-单元测试开发,这篇文章我们对用户密码进行md5加密
对用户密码进行md5加密
打开 UserServiceImpl.java 文件,编写代码如下:
其中getMd5Psw()方法是我们获得md5加密的密码的方法,在这个方法里,我们使用for循环对密码进行三次md5加密处理,加密传入的值是“盐值 + password + 盐值”,盐值是一个随机的字符串,然后在reg()方法中将md5加密后的密码和盐值都赋值给要插入数据库的user对象
...
/** 用户模块业务层实现类 */
@Service
public class UserServiceImpl implements IUserService {
@Autowired
private UserMapper userMapper;
@Override
public void reg(User user) {
String username = user.getUsername();
User result = userMapper.findByUsername(username);
if (result != null){
/** 抛出用户名已存在异常 */
throw new UsernameDuplicatedException("用户名已存在");
}
String oldPsw = user.getPassword();
String salt = UUID.randomUUID().toString().toUpperCase();
String md5Psw = getMd5Psw(oldPsw,salt);
user.setPassword(md5Psw);
user.setSalt(salt);
...
}
/**
* 获得md5加密的密码
* @param password 原密码
* @param salt 盐值
* @return md5加密三次的密码
*/
private String getMd5Psw(String password ,String salt){
for(int i = 0; i < 3; i++){
// md5加密算法
password = DigestUtils.md5DigestAsHex((salt+password+salt).getBytes()).toUpperCase();
}
return password;
}
}
加号后,我们回到UserServiceTests.java文件,将要注册的用户名改一下,改成“shs”,重新运行上一章写好的单元测试方法reg(),运行成功后可以看到数据库多了一条数据,并且密码是加密过后的密码,盐值也有数据:
写在最后
以上就是对用户密码进行md5加密的全部内容