Class Md5Utils

java.lang.Object
com.codeupsoft.base.common.utils.Md5Utils

public class Md5Utils extends Object
MD5 工具类,支持字符串、字节数组、文件的 MD5 计算,以及带盐值加密.
  • Method Details

    • md5

      public static String md5(String str)
      计算字符串的 MD5(默认 UTF-8 编码).
      Parameters:
      str - 待加密的字符串
      Returns:
      MD5 十六进制字符串(32位小写)
    • md5

      public static String md5(String str, String charset) throws UnsupportedEncodingException
      计算字符串的 MD5(指定字符集).
      Parameters:
      str - 待加密的字符串
      charset - 字符集(如 "UTF-8"、"GBK")
      Returns:
      MD5 十六进制字符串(32位小写)
      Throws:
      UnsupportedEncodingException - 字符集不支持
    • md5

      public static String md5(byte[] bytes)
      计算字节数组的 MD5.
      Parameters:
      bytes - 待加密的字节数组
      Returns:
      MD5 十六进制字符串(32位小写)
    • md5

      public static String md5(File file) throws IOException
      计算文件的 MD5(大文件友好,分块读取).
      Parameters:
      file - 待计算的文件
      Returns:
      MD5 十六进制字符串(32位小写)
      Throws:
      IOException - 文件读取异常
    • md5WithSalt

      public static String[] md5WithSalt(String str)
      带盐值的 MD5 加密(盐值随机生成).
      Parameters:
      str - 待加密的字符串
      Returns:
      数组:[0] 盐值(十六进制),[1] 加密后的 MD5
    • md5WithSalt

      public static String md5WithSalt(String str, byte[] salt)
      带盐值的 MD5 加密(自定义盐值).
      Parameters:
      str - 待加密的字符串
      salt - 盐值(字节数组)
      Returns:
      加密后的 MD5 十六进制字符串
    • verifyWithSalt

      public static boolean verifyWithSalt(String originalStr, String saltHex, String md5Hex)
      验证带盐值的 MD5(用于密码校验等场景).
      Parameters:
      originalStr - 原始字符串(如用户输入的密码)
      saltHex - 存储的盐值(十六进制)
      md5Hex - 存储的加密后 MD5
      Returns:
      验证通过返回 true,否则 false