MD5加密做摘要資訊
阿新 • • 發佈:2019-01-29
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")); } }