package com.fastbee.common.utils; import lombok.NoArgsConstructor; import java.io.IOException; import java.io.InputStream; import java.io.UnsupportedEncodingException; @NoArgsConstructor public class Md5Utils { private static final String MD5 = "MD5"; private static final String DEFAULT_ENCODING = "UTF-8"; public static String md5(String input) { return md5((String) input, 1); } public static String md5(String input, int iterations) { try { return EncodeUtils.encodeHex(DigestUtils.digest(input.getBytes("UTF-8"), "MD5", (byte[]) null, iterations)); } catch (UnsupportedEncodingException var3) { return ""; } } public static byte[] md5(byte[] input) { return md5((byte[]) input, 1); } public static byte[] md5(byte[] input, int iterations) { return DigestUtils.digest(input, "MD5", (byte[]) null, iterations); } public static byte[] md5(InputStream input) throws IOException { return DigestUtils.digest(input, "MD5"); } public static boolean isMd5(String str) { int cnt = 0; for (int i = 0; i < str.length(); ++i) { switch (str.charAt(i)) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': ++cnt; if (32 <= cnt) return true; break; case '/': if ((i + 10) < str.length()) {// "/storage/" char ch1 = str.charAt(i + 1); char ch2 = str.charAt(i + 8); if ('/' == ch2 && ('s' == ch1 || 'S' == ch1)) return true; } default: cnt = 0; break; } } return false; } }