SpringBoot框架的MD5加密方式

 更新时间:2023年03月22日 11:32:59   作者:AA白菜  
这篇文章主要介绍了SpringBoot框架的MD5加密方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

SpringBoot框架MD5加密

一般来说,为了数据的安全性,需要对密码进行两次MD5加密,第一次是在前端输入完明文密码后加密,第二次是在后端接收到前端经过MD5加密的密码后,存到数据库前进行MD5加密。       

具体流程参考如下:       

导入相关依赖

        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.6</version>
        </dependency>        

创建MD5工具类

@Component
public class MD5Utils {
    public static String md5(String src){
        return DigestUtils.md5Hex(src);
    }
    private static final String salt = "1a2b3c4d";
 
    //第一次加密
    public static String inputPassToFormPass(String inputPass){
        //md5加密密码前,先对密码进行处理,按以下salt的规则处理密码
        String str = "" + salt.charAt(0) + salt.charAt(2) + inputPass + salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }
    //第二次加密
    public static String formPassToDBPass(String formPass, String salt){
        String str = "" + salt.charAt(0) + salt.charAt(2) + formPass + salt.charAt(5) + salt.charAt(4);
        return md5(str);
    }
    //实际调用的方法,将第一次加密和第二次加密合并,结果应该一致
    public static String inputPassToDBPass(String inputPass, String salt){
        String formPass = inputPassToFormPass(inputPass);
        String dbPass = formPassToDBPass(formPass, salt);
        return dbPass;
    }
 
    public static void main(String[] args) {
        //d3b1294a61a07da9b49b6e22b2cbd7f9
        System.out.println(inputPassToFormPass("123456"));
        //b7797cce01b4b131b433b6acf4add449
        System.out.println(formPassToDBPass("d3b1294a61a07da9b49b6e22b2cbd7f9","1a2b3c4d"));
        //b7797cce01b4b131b433b6acf4add449
        System.out.println(inputPassToDBPass("123456","1a2b3c4d"));
 
    }
}

SpringBoot自带MD5加密

导入包

import org.springframework.util.DigestUtils;

对密码进行 md5 加密

String md5Password = DigestUtils.md5DigestAsHex(user.getPassword().getBytes());

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java Collection接口中的常用方法总结

    Java Collection接口中的常用方法总结

    这篇文章将大概用代码案例简单总结一下 Collection 接口中的一些方法,我们会以他的实现类 Arraylist 为例创建对象。快一起来看看吧
    2022-12-12
  • Java 在生活中的 10 大应用

    Java 在生活中的 10 大应用

    这篇文章主要给大家分享Java 在生活中的 10 大应用,桌面图形用户界面、移动应用、人工智能、网络应用程序、大数据技术、游戏应用、商业应用、嵌入式系统、云应用、科学应用,下文来看具体应用介绍,需要的朋友可以参考一下
    2021-11-11
  • 常用的Java数据结构知识点汇总

    常用的Java数据结构知识点汇总

    这篇文章主要介绍了常用的Java数据结构知识点汇总,数据结构分线性数据结构和非线性数据结构,下面对此作详细介绍,需要的小伙伴可以参考一下,希望对你的学习或工作有所帮助
    2022-03-03
  • Java双向链表倒置功能实现过程解析

    Java双向链表倒置功能实现过程解析

    这篇文章主要介绍了Java双向链表倒置功能实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • RestClient 通过拦截器实现请求加密的示例

    RestClient 通过拦截器实现请求加密的示例

    本文介绍了如何通过拦截器实现请求加密,并通过RestClient优化了加密过程,传统的加密方法依赖对象转换和序列化处理,容易导致加密不一致或难以调试的问题,通过引入拦截器,可以直接操作请求体,避免了不必要的转换步骤,确保加密过程与请求体完全一致,感兴趣的朋友一起看看吧
    2025-02-02
  • springboot基于keytool实现https的双向认证示例教程

    springboot基于keytool实现https的双向认证示例教程

    这篇文章主要介绍了springboot基于keytool实现https的双向认证,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • SpringSecurity实现前后端分离登录token认证详解

    SpringSecurity实现前后端分离登录token认证详解

    目前市面上比较流行的权限框架主要实Shiro和Spring Security,这两个框架各自侧重点不同,各有各的优劣,本文将给大家详细介绍SpringSecurity如何实现前后端分离登录token认证
    2023-06-06
  • java并发请求下数据插入重复问题的解决方法

    java并发请求下数据插入重复问题的解决方法

    现在遇到一个项目,移动设备存储数据,然后一起上传,那就出现了许多重复数据,这篇文章主要给大家介绍了关于java并发请求下数据插入重复问题的解决方法,需要的朋友可以参考下
    2021-11-11
  • Spring整合Struts2的两种方法小结

    Spring整合Struts2的两种方法小结

    下面小编就为大家带来一篇Spring整合Struts2的两种方法小结。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • mybatis定义sql语句标签之delete标签解析

    mybatis定义sql语句标签之delete标签解析

    这篇文章主要介绍了mybatis定义sql语句标签之delete标签解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03

最新评论