admin管理员组

文章数量:1639831

目录

一、需求说明

二、基于spring-core工具加密

1、导入依赖

2、代码

二、基于hutool工具进行加密

1、导入依赖

2、代码


一、需求说明

  • 在存储密码时,需要进行加密处理。所以为了安全,数据库看到的密码必须是加过密的,这就是后台人员包括工作人员看不到你正真密码,只能改密码的原因;这里简述使用MD5进行加密的两种方法,一种是基于spring-core包的工具进行MD5加密,一个是基于hutool工具类中的封装方法进行加密;
  • 在业务逻辑中相同的密码加密之后生成的加密串也是相同的,只需要对比生成后的加密串是否相同,即可判定是否输入了同一个密码。

二、基于spring-core工具加密

这种方式加密方式比较灵活,可以在工具类中多层自定义加密方式;

1、导入依赖

      <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>4.1.7.RELEASE</version>
       </dependency>

2、代码

  • MD5Util.java
import org.springframework.util.DigestUtils;
//必须得有Spring-core支持
public class MD5Util {
	//必须要有Spring-core支持
	public static String getMd5Plus(String pwd){
		//先进行第一层加密
		String md1 = DigestUtils.md5DigestAsHex(pwd.getBytes());
		//截取第一层加密后的密文的前6位
		String substring6 = md1.substring(0, 6);//前包含后不包含
		//再对密文+前6位再加密
		String md5plus = DigestUtils.md5DigestAsHex((md1+substring6).getBytes());
		return md5plus;
	}
}
  • 测试
String pwd="123456";
//033e997f49e0cff004e70b09303f670a
String md5Plus1 = MD5Util.getMd5Plus(pwd);
String login_pwd="123456";
//033e997f49e0cff004e70b09303f670a
String md5Plus2 = MD5Util.getMd5Plus(login_pwd);
//true
System.out.println(md5Plus1.equals(md5Plus2));

二、基于hutool工具进行加密

1、导入依赖

       <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.16</version>
        </dependency>

2、代码

String str_pwd="123456";
//e10adc3949ba59abbe56e057f20f883e
String md5Hex1 = DigestUtil.md5Hex(str_pwd);
String str_login_pwd="123456";
//e10adc3949ba59abbe56e057f20f883e
String md5Hex2 = DigestUtil.md5Hex(str_login_pwd);
//true
System.out.println(md5Hex1.equals(md5Hex2));

本文标签: 两种方式