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); } }