zoukankan      html  css  js  c++  java
  • 基于MD5盐值的密码加密与验证方式

    数据库表字段保存生成的随机盐值以进行后续验证登录

    注册加密

    controller层获取用户输入的用户名和密码调用方法这里不再赘述,直接上实现代码

    service实现层


    /**
    * 用户注册
    * @param user 将要注册的用户数据

    */

    public void reg(User user){

    // - 生成随机盐
    String salt = UUID.randomUUID().toString().toUpperCase();
    // - 基于原密码和盐值执行加密
    String md5Password = getMd5Password(user.getPassword(), salt);
    // - 将盐和加密结果封装到user对象中
    user.setSalt(salt);
    user.setPassword(md5Password);

    // 执行注册
    Integer rows = userMapper.insert(user);

    }

    验证登录方式

    根据登录名获取数据表中用户生成密码的盐值反加密后进行比对

    String md5Password = getMd5Password(password, salt);

    密码的加密方法(根据需要自行设置)

    /**
    * 将密码执行加密
    * @param password 原密码
    * @param salt 盐值
    * @return 加密后的结果
    */
    private String getMd5Password(String password, String salt) {
    // 拼接原密码与盐值
    String str = salt + password + salt;
    // 循环加密5次
    for (int i = 0; i < 5; i++) {

    // DigestUtils:springboot提供的工具类
    str = DigestUtils.md5DigestAsHex(
    str.getBytes()).toUpperCase();
    }
    // 返回结果
    return str;
    }

  • 相关阅读:
    查看占用内存cpu top10
    free 详解
    find
    服务器硬件查看
    firewalld命令使用
    firewalld-zone概念介绍
    Jenkins rpm包安装
    攻击防御案例
    filebeat收集系统登陆日志
    nginx转换json格式
  • 原文地址:https://www.cnblogs.com/xiaowangxiao/p/10961384.html
Copyright © 2011-2022 走看看