1 package com.tencent.common; 2 3 import java.security.MessageDigest; 4 5 public class MD5 { 6 private final static String[] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", 7 "8", "9", "a", "b", "c", "d", "e", "f"}; 8 9 /** 10 * 转换字节数组为16进制字串 11 * @param b 字节数组 12 * @return 16进制字串 13 */ 14 public static String byteArrayToHexString(byte[] b) { 15 StringBuilder resultSb = new StringBuilder(); 16 for (byte aB : b) { 17 resultSb.append(byteToHexString(aB)); 18 } 19 return resultSb.toString(); 20 } 21 22 /** 23 * 转换byte到16进制 24 * @param b 要转换的byte 25 * @return 16进制格式 26 */ 27 private static String byteToHexString(byte b) { 28 int n = b; 29 if (n < 0) { 30 n = 256 + n; 31 } 32 int d1 = n / 16; 33 int d2 = n % 16; 34 return hexDigits[d1] + hexDigits[d2]; 35 } 36 37 /** 38 * MD5编码 39 * @param origin 原始字符串 40 * @return 经过MD5加密之后的结果 41 */ 42 public static String MD5Encode(String origin) { 43 String resultString = null; 44 try { 45 resultString = origin; 46 MessageDigest md = MessageDigest.getInstance("MD5"); 47 resultString = byteArrayToHexString(md.digest(resultString.getBytes())); 48 } catch (Exception e) { 49 e.printStackTrace(); 50 } 51 return resultString; 52 } 53 54 }
以上代码摘自微信支付官方Demo,仅作个人学习使用。