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));
}
}