package com.matrix.component.wechat.externalInterface.common; 
 | 
  
 | 
import java.security.MessageDigest; 
 | 
  
 | 
/** 
 | 
 * User: rizenguo 
 | 
 * Date: 2014/10/23 
 | 
 * Time: 15:43 
 | 
 */ 
 | 
public class MD5 { 
 | 
    private final static String[] hexDigits = {"0", "1", "2", "3", "4", "5", "6", "7", 
 | 
            "8", "9", "a", "b", "c", "d", "e", "f"}; 
 | 
  
 | 
    /** 
 | 
     * 转换字节数组为16进制字串 
 | 
     * @param b 字节数组 
 | 
     * @return 16进制字串 
 | 
     */ 
 | 
    public static String byteArrayToHexString(byte[] b) { 
 | 
        StringBuilder resultSb = new StringBuilder(); 
 | 
        for (byte aB : b) { 
 | 
            resultSb.append(byteToHexString(aB)); 
 | 
        } 
 | 
        return resultSb.toString(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 转换byte到16进制 
 | 
     * @param b 要转换的byte 
 | 
     * @return 16进制格式 
 | 
     */ 
 | 
    private static String byteToHexString(byte b) { 
 | 
        int n = b; 
 | 
        if (n < 0) { 
 | 
            n = 256 + n; 
 | 
        } 
 | 
        int d1 = n / 16; 
 | 
        int d2 = n % 16; 
 | 
        return hexDigits[d1] + hexDigits[d2]; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * MD5编码 
 | 
     * @param origin 原始字符串 
 | 
     * @return 经过MD5加密之后的结果 
 | 
     */ 
 | 
    public static String MD5Encode(String origin) { 
 | 
        String resultString = null; 
 | 
        try { 
 | 
            resultString = origin; 
 | 
            MessageDigest md = MessageDigest.getInstance("MD5"); 
 | 
            resultString = byteArrayToHexString(md.digest(resultString.getBytes("utf-8"))); 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
        return resultString; 
 | 
    } 
 | 
  
 | 
} 
 |