package com.matrix.core.tools; 
 | 
  
 | 
import java.security.MessageDigest; 
 | 
  
 | 
/** 
 | 
 * MD5工具类 
 | 
 *  
 | 
 * @author jiangyouyao 
 | 
 * @email 512061637@qq.com 
 | 
 * @date 2019年2月25日 
 | 
 */ 
 | 
public class MD5Util { 
 | 
  
 | 
    /** 
 | 
     * 把字节数组转成16进位制数 
 | 
     *  
 | 
     * @author jiangyouyao 
 | 
     * @email 512061637@qq.com 
 | 
     * @date 2019年2月25日 
 | 
     * @param bytes 
 | 
     * @return 
 | 
     */ 
 | 
    public static String bytesToHex(byte[] bytes) { 
 | 
        StringBuffer md5str = new StringBuffer(); 
 | 
        // 把数组每一字节换成16进制连成md5字符串 
 | 
        int digital; 
 | 
        for (int i = 0; i < bytes.length; i++) { 
 | 
            digital = bytes[i]; 
 | 
            if (digital < 0) { 
 | 
                digital += 256; 
 | 
            } 
 | 
            if (digital < 16) { 
 | 
                md5str.append("0"); 
 | 
            } 
 | 
            md5str.append(Integer.toHexString(digital)); 
 | 
        } 
 | 
        return md5str.toString(); 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 把字节数组转换成md5 
 | 
     *  
 | 
     * @author jiangyouyao 
 | 
     * @email 512061637@qq.com 
 | 
     * @date 2019年2月25日 
 | 
     * @param input 
 | 
     * @return 
 | 
     */ 
 | 
    public static String bytesToMD5(byte[] input) { 
 | 
        String md5str = null; 
 | 
        try { 
 | 
            // 创建一个提供信息摘要算法的对象,初始化为md5算法对象 
 | 
            MessageDigest md = MessageDigest.getInstance("MD5"); 
 | 
            // 计算后获得字节数组 
 | 
            byte[] buff = md.digest(input); 
 | 
            // 把数组每一字节换成16进制连成md5字符串 
 | 
            md5str = bytesToHex(buff); 
 | 
        } catch (Exception e) { 
 | 
            e.printStackTrace(); 
 | 
        } 
 | 
        return md5str; 
 | 
    } 
 | 
  
 | 
    /** 
 | 
     * 把字符转换成md5 
 | 
    * @author jiangyouyao 
 | 
    * @email 512061637@qq.com 
 | 
    * @date 2019年2月25日 
 | 
    * @param str 
 | 
    * @return 
 | 
     */ 
 | 
    public static String strToMD5(String str) { 
 | 
        byte[] input = str.getBytes(); 
 | 
  
 | 
        return bytesToMD5(input); 
 | 
    } 
 | 
  
 | 
} 
 |