package Utile;
import java.math.BigInteger;
import java.security.MessageDigest;
public class MD5_Utile {java
//由於工具類方法不須要實例化 // 生成16位MD5密文 public static String getMD5(String c_password) { try { // 生成一個MD5加密計算摘要 MessageDigest md = MessageDigest.getInstance("MD5"); // 調用update方法計算MD5函數(參數:將密碼串轉換爲操做系統的字節編碼) md.update(c_password.getBytes()); // digest()最後返回md5的hash值,返回值爲8位的字符串,但此方法要先調用update // BigInteger函數則將8位的字符串轉換成16位hex值,用字符串來表示;獲得字符串形式的hash值,數值從1開始 // BigInteger會把0省略掉,需補全至32位,重寫一個方法將16位數轉換爲32位數 String md5 = new BigInteger(1, md.digest()).toString(16); return fillMD5(md5); } catch (Exception e) { throw new RuntimeException("MD5加密錯誤:" + e.getMessage(), e); } } // 將16位數轉爲32位 public static String fillMD5(String md5) { return md5.length() == 32 ? md5 : fillMD5("0" + md5); }
}函數