java 調用apache.commons.codec的包簡單實現MD5加密
阿新 • • 發佈:2019-02-22
應該 http ted 基本 csdn details code ger 實現
轉自:https://blog.csdn.net/mmd1234520/article/details/70210002/
1 import java.security.MessageDigest; 2 import java.security.NoSuchAlgorithmException; 3 4 import org.apache.commons.codec.digest.DigestUtils;//開發的jar包 使用更方便 5 public class MD5 { 6 7 /* 8 * 1.一個運用基本類的實例 9 * MessageDigest 對象開始被初始化。該對象通過使用 update 方法處理數據。10 * 任何時候都可以調用 reset 方法重置摘要。 11 * 一旦所有需要更新的數據都已經被更新了,應該調用 digest 方法之一完成哈希計算。 12 * 對於給定數量的更新數據,digest 方法只能被調用一次。 13 * 在調用 digest 之後,MessageDigest 對象被重新設置成其初始狀態。 14 */ 15 public static void encrypByMd5(String context) { 16 try { 17 MessageDigest md = MessageDigest.getInstance("MD5");18 md.update(context.getBytes());//update處理 19 byte [] encryContext = md.digest();//調用該方法完成計算 20 21 int i; 22 StringBuffer buf = new StringBuffer(""); 23 for (int offset = 0; offset < encryContext.length; offset++) {//做相應的轉化(十六進制) 24i = encryContext[offset]; 25 if (i < 0) i += 256; 26 if (i < 16) buf.append("0"); 27 buf.append(Integer.toHexString(i)); 28 } 29 System.out.println("32result: " + buf.toString());// 32位的加密 30 System.out.println("16result: " + buf.toString().substring(8, 24));// 16位的加密 31 } catch (NoSuchAlgorithmException e) { 32 // TODO Auto-generated catch block 33 e.printStackTrace(); 34 } 35 } 36 37 /* 38 * 2.使用開發的jar直接應用 39 * 使用外部的jar包中的類:import org.apache.commons.codec.digest.DigestUtils; 40 * 對上面內容的一個封裝使用方便 41 */ 42 public static void encrypByMd5Jar(String context) { 43 String md5Str = DigestUtils.md5Hex(context); 44 System.out.println("32result: " + md5Str); 45 } 46 47 public static void main(String[] args) { 48 49 encrypByMd5("yang"); 50 encrypByMd5Jar("yang"); 51 } 52 }
java 調用apache.commons.codec的包簡單實現MD5加密