Spring Boot 项目13:对用户密码进行md5加密

794 阅读1分钟

写在前面

上一篇文章我们进行了用户注册-业务层-单元测试开发,这篇文章我们对用户密码进行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(),运行成功后可以看到数据库多了一条数据,并且密码是加密过后的密码,盐值也有数据:

image.png

写在最后

以上就是对用户密码进行md5加密的全部内容