SpringBoot实现Mysql使用MD5进行密码加密的示例

作者:weixin_44953227 时间:2022-11-24 23:14:16 

项目开发中为了保护用户隐私安全,一般都会用MD5进行密码加密

以下就简单举例SpringBoot 实现Mysql使用MD5进行密码加密做一个简单的例子

看下数据库,这边简单做了用户表进行测试

SpringBoot实现Mysql使用MD5进行密码加密的示例

pom.xml添加依赖引用


<!--MD5加密 对注册的密码进行加密操作-->
       <dependency>
           <groupId>commons-codec</groupId>
           <artifactId>commons-codec</artifactId>
       </dependency>
       <dependency>
           <groupId>org.apache.commons</groupId>
           <artifactId>commons-lang3</artifactId>
           <version>3.8.1</version>
       </dependency>

创建unit包创建md5加密类,进行密码加密


package com.wyh.unit;

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

/**
* @date 2021/4/20 23:34
*/
public class Md5Utils {
   /*
   * md5算法进行密码加密
   * */
   public static String code(String str){
       try{
           //1.获取MessageDigest对象  生成一个MD5加密计算摘要
           MessageDigest md = MessageDigest.getInstance("MD5") ;
           /*
           str.getBytes()
           * 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中.
           此方法多用在字节流中,用与将字符串转换为字节。
           * */

// 计算md5函数 使用指定的字节数组更新摘要md
           md.update(str.getBytes());
           /*
            * digest()最后确定返回md5 hash值,返回值为8的字符串。
            * 因为md5 hash值是16位的hex值,实际上就是8位的
            * */
           byte[] byteDigest = md.digest() ;
           int i ;
           StringBuffer buf = new StringBuffer("") ;
           //遍历byteDigest
           //加密逻辑,可以debug自行了解一下加密逻辑
           for(int offset = 0 ; offset<byteDigest.length ; offset++){
               i = byteDigest[offset] ;
               if(i < 0)
                   i += 256 ;
               if(i < 16)
                   buf.append("0") ;
               // BigInteger函数则将8位的字符串转换成16位hex值,用字符串来表示;得到字符串形式的hash值
               buf.append(Integer.toHexString(i)) ;
           }
           return buf.toString() ;
       }catch (NoSuchAlgorithmException e){
           e.printStackTrace();
           return null ;
       }
   }

}

添加页面


<%--
 Date: 2021/4/21
 Time: 0:04
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
   <title>添加用户</title>
</head>
<body>
   <form action="/addUser" method="post">
       用户名<input type="text" name="username"/><br>
       账号<input type="text" name="account"/><br>
       密码<input type="password" name="password"/><br>
       <input type="submit" value="提交">
   </form>
</body>
</html>

Controller添加方法


@RequestMapping("/addUser")
   public String addUser(User user){
       //MD5方法对密码进行加密处理
       String password= Md5Utils.code(user.getPassword()) ;
       user.setPassword(password);
       int i = userService.addUser(user);
       if(i>0){
           return "redirect:/showAllUser";
       }
      return "";
   }

进行添加测试,这边我输入的密码是123456

SpringBoot实现Mysql使用MD5进行密码加密的示例

查看数据库

SpringBoot实现Mysql使用MD5进行密码加密的示例

进行解密可以去:https://www.cmd5.com/
复制数据库的加密密码即可

SpringBoot实现Mysql使用MD5进行密码加密的示例

来源:https://blog.csdn.net/weixin_44953227/article/details/116013637

标签:SpringBoot,MD5,密码,加密
0
投稿

猜你喜欢

  • Android Studio轻松构建自定义模板的步骤记录

    2023-07-19 01:11:51
  • maven资源过滤打包后文件变大的处理方法

    2023-10-05 21:38:24
  • Flutter进阶之实现动画效果(九)

    2023-04-11 12:20:06
  • IDEA 2020.1 版自动导入MAVEN依赖的方法(新版MAVEN无法自动导入/更新POM依赖、MAVEN设置自动更新、自动更新快捷键)

    2022-08-27 09:31:22
  • android自定义View实现简单五子棋游戏

    2022-09-16 14:52:30
  • Android实现启动页倒计时效果

    2021-07-26 20:50:14
  • Android电量优化提高手机续航

    2022-06-14 11:39:40
  • 详解在Spring3中使用注解(@Scheduled)创建计划任务

    2022-11-14 15:39:34
  • 在unity脚本中控制Inspector面板的参数操作

    2023-07-22 11:39:58
  • Unity3d使用FairyGUI 自定义字体的操作

    2022-05-29 16:57:27
  • SpringCloud Zuul过滤器和谷歌Gauva实现限流

    2022-08-31 11:59:21
  • Android CheckBox 的使用案例分析

    2022-02-07 21:00:56
  • 详解Java中的JDK、JRE、JVM

    2023-07-10 04:38:50
  • springboot之如何获取项目目录路径

    2022-08-09 21:44:17
  • java json 省市级联实例代码

    2021-11-13 18:50:35
  • Java 中 synchronized的用法详解(四种用法)

    2022-03-11 08:55:05
  • java中Class.getMethods()和Class.getDeclaredMethods()方法的区别

    2021-05-28 23:05:46
  • 谈谈HttpClient使用详解

    2022-11-03 08:19:02
  • java基础中异常及包归纳整理

    2022-11-08 17:46:02
  • C#中out与ref的区别实例解析

    2022-01-27 13:29:09
  • asp之家 软件编程 m.aspxhome.com