当前位置:网站首页>MD5加密的两种方式
MD5加密的两种方式
2022-07-04 15:12:00 【郝少】
目录
一、需求说明
- 在存储密码时,需要进行加密处理。所以为了安全,数据库看到的密码必须是加过密的,这就是后台人员包括工作人员看不到你正真密码,只能改密码的原因;这里简述使用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));边栏推荐
- Congratulations to Mr. Zhang Pengfei, chief data scientist of artefact, for winning the campaign Asia tech MVP 2022
- SQL implements split
- .Net 应用考虑x64生成
- China's roof ladder market trend report, technological innovation and market forecast
- Research Report on market supply and demand and strategy of surgical stapler industry in China
- Vscode setting outline shortcut keys to improve efficiency
- 建筑建材行业经销商协同系统解决方案:赋能企业构建核心竞争力
- 2022年国内云管平台厂商哪家好?为什么?
- ~89 deformation translation
- Years of training, towards Kata 3.0! Enter the safe container experience out of the box | dragon lizard Technology
猜你喜欢

新的职业已经出现,怎么能够停滞不前 ,人社部公布建筑新职业

智慧物流园区供应链管理系统解决方案:数智化供应链赋能物流运输行业供应链新模式

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下

Software Engineer vs Hardware Engineer

NoSQL之readis配置与优化(终章)

周大福践行「百周年承诺」,真诚服务推动绿色环保

Understand ThreadLocal in one picture

The winning rate against people is 84%, and deepmind AI has reached the level of human experts in army chess for the first time

GO开发:如何利用Go单例模式保障流媒体高并发的安全性?

What is torch NN?
随机推荐
Lv166 turned over
Solution du système de gestion de la chaîne d'approvisionnement du parc logistique intelligent
Visual Studio 2019 (LocalDB)MSSQLLocalDB SQL Server 2014 数据库版本为852无法打开,此服务器支持782
Vscode setting outline shortcut keys to improve efficiency
The vscode waveform curve prompts that the header file cannot be found (an error is reported if the header file exists)
Research Report on market supply and demand and strategy of China's four sided flat bag industry
Software Engineer vs Hardware Engineer
Jump table instance
Visual studio 2019 (localdb) mssqllocaldb SQL Server 2014 database version is 852 and cannot be opened. This server supports 782
CMPSC311 Linear Device
基于wifi控制的51单片机温度报警器
Practice: fabric user certificate revocation operation process
Blood spitting finishing nanny level series tutorial - play Fiddler bag grabbing tutorial (2) - first meet fiddler, let you have a rational understanding
How to "use" Perl modules in directories that are not in @inc- How do I 'use' a Perl module in a directory not in @INC?
System.currentTimeMillis() 和 System.nanoTime() 哪个更快?别用错了!
L1-072 scratch lottery
Go语言循环语句(第10课下)
Research Report on market supply and demand and strategy of China's Sodium Tetraphenylborate (cas+143-66-8) industry
智慧物流园区供应链管理系统解决方案:数智化供应链赋能物流运输行业供应链新模式
Go language loop statement (under Lesson 10)