其他分享
首页 > 其他分享> > MD5加密实现注册和登录功能

MD5加密实现注册和登录功能

作者:互联网

MD5加密实现注册和登录功能

一、MD5接口知识

(串 + password + 串) ------ MD5算法进行加密,连续加载三次
(盐值 + password + 盐值) ------ 盐值就是一个随机字符串

1、获取盐值(随机生成一个盐值,保存到数据库)

String salt = UUID.randomUUID().toString().toUpperCase(); //toUpperCase() : 转为大写,可以选择不转为大写

2、将密码和盐值作为一个整体进行加密处理

String password = "123456";
for (int i = 0; i < 3; i++) {
    //DigestUtils.md5DigestAsHex(byte[] bytes) ,将(盐值 + password + 盐值)转换为Byte数据
	password = DigestUtils.md5DigestAsHex((salt + password + salt).getBytes()).toUpperCase();
}

image

二、封装MD5加密方法进行加密

image

三、使用MD进行用户注册功能

@Override
public R<String> save(Employee employee) {

    //
    Employee employeeIsNull = employeeMapper.login(employee);
    if (employeeIsNull != null){
        return R.error("用户已存在");
    }

    //随机生成一个盐值
    String salt = UUID.randomUUID().toString().toUpperCase();
    employee.setSalt(salt); //补全盐值
    //初始密码加密
    String md5Password = getMD5Password("123456", salt);
    employee.setPassword(md5Password); //补全密码
    employee.setStatus(1); //补全状态
    employee.setCreateTime(LocalDateTime.now());//补全创建时间
    employee.setUpdateTime(LocalDateTime.now()); //补全更新时间

    //员工信息保存到数据库
    Integer rows = employeeMapper.save(employee);
    if (rows<1){
        return R.error("创建员工发生错误");
    }

    return R.success("添加成功");
}

四、MD5解密,用户登录实现

@Override
public R<Employee> login(Employee employee) {

    //根据Employee的username传递给Mapper进行数据库查询,判断用户是否存在
    Employee result = employeeMapper.login(employee);
    if (result == null){
        return R.error("账号密码错误");
    }
    //1、获取用户传递过来的密码
    String password = employee.getPassword();
    //2、获取盐值
    String salt = result.getSalt();
    //3、进行MD5加密
    String MD5Password = getMD5Password(password, salt);
    //4、加密后跟数据库密码进行比较
    if (!MD5Password.equals(result.getPassword())){
        return R.error("账号密码错误");
    }

    if (result.getStatus() != 1){
        return R.error("该账号已被封禁");
    }

    return R.success(result);
}

标签:加密,登录,盐值,employee,password,salt,MD5
来源: https://www.cnblogs.com/luoxiao1104/p/16381596.html