分享一個MD5加密的工具類

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

}函數

相關文章
相關標籤/搜索