当前位置:网站首页>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));
边栏推荐
- 多年锤炼,迈向Kata 3.0 !走进开箱即用的安全容器体验之旅| 龙蜥技术
- Accounting regulations and professional ethics [8]
- Research Report on surgical otorhinolaryngology equipment industry - market status analysis and development prospect prediction
- Jump table instance
- 被PMP考试“折磨”出来的考试心得,值得你一览
- Understand ThreadLocal in one picture
- Congratulations to Mr. Zhang Pengfei, chief data scientist of artefact, for winning the campaign Asia tech MVP 2022
- 安信证券网上开户安全吗 开户收费吗
- Embedded software architecture design - function call
- APOC custom functions and procedures
猜你喜欢
Transformer中position encoding实践
The winning rate against people is 84%, and deepmind AI has reached the level of human experts in army chess for the first time
The vscode waveform curve prompts that the header file cannot be found (an error is reported if the header file exists)
"Cannot initialize Photoshop because the temporary storage disk is full" graphic solution
Capvision Rongying's prospectus in Hong Kong was "invalid": it was strictly questioned by the CSRC and required supplementary disclosure
智慧物流園區供應鏈管理系統解决方案:數智化供應鏈賦能物流運輸行業供應鏈新模式
Vscode setting outline shortcut keys to improve efficiency
Why do you say that the maximum single table of MySQL database is 20million? Based on what?
DC-2靶场搭建及渗透实战详细过程(DC靶场系列)
Application of clock wheel in RPC
随机推荐
2021 Google vulnerability reward program review
嵌入式软件架构设计-函数调用
Research Report of exoskeleton robot industry - market status analysis and development prospect prediction
Statistical learning: logistic regression and cross entropy loss (pytoch Implementation)
Congratulations to Mr. Zhang Pengfei, chief data scientist of artefact, for winning the campaign Asia tech MVP 2022
China tall oil fatty acid market trend report, technical dynamic innovation and market forecast
Integration of ongdb graph database and spark
Research Report on market supply and demand and strategy of China's Sodium Tetraphenylborate (cas+143-66-8) industry
overflow:auto与felx结合的用法
时序图数据建模与产业链分析
APOC自定义函数和过程
[Acwing] 58周赛 4490. 染色
昆明三环闭合工程将经过这些地方,有在你家附近的吗?
Unity interview questions (continuously updated)
Embedded software architecture design - function call
被PMP考试“折磨”出来的考试心得,值得你一览
高度剩余法
智慧物流園區供應鏈管理系統解决方案:數智化供應鏈賦能物流運輸行業供應鏈新模式
S2b2b solution for lighting industry: efficiently enable the industrial supply chain and improve the economic benefits of enterprises
"Cannot initialize Photoshop because the temporary storage disk is full" graphic solution