MD5简介
MD5算法是单向散列算法的一种。单向散列算法也称为HASH算法,是一种将任意长度的信息压缩至某一固定长度(称之为消息摘要)的函数(该压缩过程不可逆)。在MD5算法中,这个摘要是指将任意数据映射成一个128位长的摘要信息。并且其是不可逆的,即从摘要信息无法反向推演中原文,在演算过程中,原文的内容也是有丢失的。
工具类
package com.dbl.util;
import java.security.MessageDigest;
/**
* @Author 高国鹏
* @Create 2024/7/4 14:02
* Description:
*/
public class MD5Util {
/**
* (支持大小写,默认小写)
*
* @param str 要加密的数据
* @param uppercase 是否转为大写 大写:T 小写:F
* @return
*/
public static String getMD5(String str,boolean uppercase){
// 加密后的16进制字符串
String hexStr = "";
try {
// 此 MessageDigest 类为应用程序提供信息摘要算法的功能
MessageDigest md5 = MessageDigest.getInstance("MD5");
// 转换为MD5码
byte[] digest = md5.digest(str.getBytes("utf-8"));
// byte[]字节数组转16进制
StringBuffer sb = new StringBuffer(digest.length);
String sTemp;
for (int i = 0; i < digest.length; i++) {
sTemp = Integer.toHexString(0xFF & digest[i]);
if (sTemp.length() < 2)
sb.append(0);
sb.append(sTemp.toUpperCase());
}
hexStr = sb.toString();
} catch (Exception e) {
e.printStackTrace();
}
return uppercase ? hexStr : hexStr.toLowerCase();
// 16位就是截取一下就可以
//System.out.println(MD5Util.getMD5(str,true).substring(8, 24));
}
}
标签:MessageDigest,String,算法,sTemp,加密算法,digest,MD5
From: https://www.cnblogs.com/Gguopeng/p/18413368