import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * MD5算法工具类 * @author XLINK * */ public class MD5Tool { /** * 16位md5 * @return */ public static String hexMD5(String string){ String md5 = MD5(string); if(null != md5 && md5.length() >= 24){ md5 = md5.substring(8, 24); } return md5; } /** * MD5方法 * * @param string * @return String */ public static String MD5(String string) { try { MessageDigest md = MessageDigest.getInstance("MD5"); return byteArrayToHexString(md.digest(string.getBytes())); } catch (NoSuchAlgorithmException e) { return null; } } /** * MD5加密 * @param bytes * @return */ public static String MD5(byte[] bytes){ try { MessageDigest md = MessageDigest.getInstance("MD5"); return byteArrayToHexString(md.digest(bytes)); } catch (NoSuchAlgorithmException e) { return null; } } /** * 将字节数组转换为十六进制字符串 * @param bytes * @return */ private static String byteArrayToHexString(byte[] bytes) { StringBuffer buf = new StringBuffer(bytes.length * 2); for (int i = 0; i < bytes.length; i++) { if (((int) bytes[i] & 0xff) < 0x10) { buf.append("0"); } buf.append(Long.toString((int) bytes[i] & 0xff, 16)); } return buf.toString(); } public static void main(String[] args) { String str = MD5Tool.hexMD5("jack"); System.out.println(str); } }
标签:return,String,bytes,算法,static,工具,md5,MD5 From: https://www.cnblogs.com/Jack-zhao/p/16716609.html