天行健,君子以自强不息;地势坤,君子以厚德载物。
每个人都有惰性,但不断学习是好好生活的根本,共勉!
文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。
文章目录
- 1. 介绍
- 2. 代码
- 3. 使用
- 4. 输出
加密解密的相关文章参考:
BASE64加密解密
MD5加密
SHA加密解密
RSA加密解密
1. 介绍
MD5 Message Digest Algorithm 5 信息摘要算法5
用于信息传输一致性校验
通常配合BASE64一起使用
特点:
- MD5加密后的值长度固定
- 原数据略微改动所产生的MD5值会有很大差别
- 不同数据很难产生相同的MD5值
2. 代码
整理为工具类
MD5Utils.java
package com.libai.utils.encryption_utils;
import org.springframework.util.Base64Utils;
import java.math.BigInteger;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
* @ClassDescription: MD5 message digest algorithm 5 信息摘要算法5
* 常用于文件校验,不管文件多大,经过MD5加密后会生成惟一的MD5值,
* 单向加密
* 输出的MD5值是固定的
* 原数据略微改动后得到的MD5值区别都会很大
* @JdkVersion: 1.8
* @Author: 李白
* @Created: 2024/3/22 16:43
*/
public class Md5Utils {
/**
* MD5加密
* @param str 需要加密的字符串
* @return 返回md5加密后的字符串
*/
public static String md5Encrypt(String str){
BigInteger bigInteger = null;
try {
MessageDigest md5 = MessageDigest.getInstance("MD5");
md5.update(str.getBytes());
// md5.update(str.getBytes(StandardCharsets.UTF_8));
byte[] digest = md5.digest();
bigInteger = new BigInteger(digest);
} catch (NoSuchAlgorithmException e) {
throw new RuntimeException(e);
}
// System.out.println("md5加密后的内容: "+bigInteger.toString(16));
return bigInteger.toString(16);
}
/**
* MD5加密并使用Base64再加密
* @param str 需要加密的字符串
* @return 返回md5加密并使用base64再次加密后的字符串
*/
public static String md5AndBase64Encrypt(String str){
String md5Str = md5Encrypt(str);
return Base64Utils.encodeToString(md5Str.getBytes());
}
}
3. 使用
编写main方法,应用
Md5Test.java
package com.libai.test.encrypt_test;
import com.libai.utils.encryption_utils.Md5Utils;
/**
* @ClassDescription:
* @JdkVersion: 1.8
* @Author: 李白
* @Created: 2024/3/23 15:50
*/
public class Md5Test {
public static void main(String[] args) {
String s = Md5Utils.md5Encrypt("123456");
System.out.println("MD5加密后的s: "+s);
String s2 = Md5Utils.md5AndBase64Encrypt(s);
System.out.println("md5+base64加密的s2: "+s2);
}
}
4. 输出
执行,输出结果如下
感谢阅读,祝君暴富!