package io.dataease.utils; import java.security.MessageDigest; public class Md5Utils { private static final char[] HEX_DIGITS = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}; private static final String UTF_8 = "UTF-8"; public static String md5(String src) { return md5(src, UTF_8); } public static String md5(String src, String charset) { try { byte[] strTemp = charset == null || charset.equals("") ? src.getBytes() : src.getBytes(charset); MessageDigest mdTemp = MessageDigest.getInstance("MD5"); mdTemp.update(strTemp); byte[] md = mdTemp.digest(); int j = md.length; char[] str = new char[j * 2]; int k = 0; for (byte byte0 : md) { str[k++] = HEX_DIGITS[byte0 >>> 4 & 0xf]; str[k++] = HEX_DIGITS[byte0 & 0xf]; } return new String(str); } catch (Exception e) { throw new RuntimeException("MD5 encrypt error:", e); } } }