1. 程式人生 > >MD5加密做摘要資訊

MD5加密做摘要資訊

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
/**
 * MD5做摘要資訊
 * @author Administrator
 *
 */

public class Md5Encryption {
	//定義一個16進位制字元陣列
	static char[] hexDigits={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
	//MD5生成摘要資訊
	public static String md5(String content){
		try {
			//獲取資訊摘要物件
			MessageDigest md5 = MessageDigest.getInstance("MD5");
			//使用指定的 byte陣列更新摘要
			md5.update(content.getBytes());
			//生成密文
			byte[] hadEncription = md5.digest();
			//定義一個字元陣列用來裝換後的16進位制字元    
			//由於一個 byte是 8 位,一個16進位制 數是由 4位的二進位制陣列成,一個byte拆成兩個組成16進位制數,所以長度要多兩倍。
			//所以建字元陣列要長度要是位元組陣列的2倍長度
			char[] hexCharacter = new char[hadEncription.length << 1];
			int p = 0;
			for (int i = 0; i < hadEncription.length; i++){
				byte b = hadEncription[i];
				//一個 byte拆成兩個,組成16進位制數
				hexCharacter[p++] = hexDigits[b >>> 4 & 0xf];
				hexCharacter[p++] = hexDigits[b & 0xf];
			}
			//轉換成字串返回
			return new String(hexCharacter);
		} catch (NoSuchAlgorithmException e) {
		}
		
		return null;
	}

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.println(md5("1122"));
		

	}

}