1. 程式人生 > >MD5加密以及轉化為16進位制

MD5加密以及轉化為16進位制

        使用很簡單:獲取java.security.MessageDigest類的例項:MessageDigest提供了一個訊息摘要演算法,主要包括MD5和SHA加密。

MessageDigest類包含兩個元件:提供應用程式呼叫的API介面和提供演算法服務的介面SPI,MessageDigest繼承了MessageDigestSpi,只要實現這個抽象類中的engin***()方法,你的演算法就能為MessageDigest所用。

獲取例項程式碼:

    MessageDigest md5=MessageDigest.getInstance("MD5");

     md5.update(code.getBytes());

   很多時候我們需要對指定報文生成的訊息摘要進行轉換:byte轉16進位制字串:

code:

/**

* * 將位元組陣列中指定區間的子陣列轉換成16進位制字串 * @param bytes 目標位元組陣列 * @param start

* 起始位置(包括該位置) * @param end 結束位置(不包括該位置) * @return 轉換結果

*/

public static String bytesToHex(byte bytes[], int start, int end) {

StringBuilder sb = new StringBuilder();

for (int i = start; i < start + end; i++) {

sb.append(byteToHex(bytes[i]));

}

return sb.toString();

}

/** * 16進位制字符集 */

private static final char HEX_DIGITS[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F' };

/** * 將單個位元組碼轉換成16進位制字串 * @param bt 目標位元組 * @return 轉換結果 */

public static String byteToHex(byte bt) {

return HEX_DIGITS[(bt & 0xf0) >> 4] + "" + HEX_DIGITS[bt & 0xf];

}