package com.ruoyi.web.util; /** * @ClassName ParseMD5 * @Description: TODO * @Author LX * @Date 2023/6/27 * @Version V1.0 **/ import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; /** * 将字符串转换为MD5 */ public class ParseMD5 { private final static String mStrClassName = "ParseMD5"; private final static String EMPTY_NULL = "NULL"; private static final Logger sys_error_logger = LoggerFactory.getLogger("sys-error"); public static String parseStrToMd5L32(String str) { // 将字符串转换为32位小写MD5 String reStr = null; try { MessageDigest md5 = MessageDigest.getInstance("MD5"); byte[] bytes = md5.digest(str.getBytes()); StringBuffer stringBuffer = new StringBuffer(); for (byte b : bytes) { int bt = b&0xff; if (bt < 16) { stringBuffer.append(0); } stringBuffer.append(Integer.toHexString(bt)); } reStr = stringBuffer.toString(); } catch (NoSuchAlgorithmException e) { sys_error_logger.error(String.format(mStrClassName+" errorMsg: %s====>" ,e.getLocalizedMessage())); } return reStr; } // 将字符串转换为32位大写的MD5 public static String parseStrToMd5U32(String str) { String reStr = parseStrToMd5L32(str); if (reStr != null) { reStr = reStr.toUpperCase(); } return reStr; } // 将字符串转换为16位小写的MD5 public static String parseStrToMd5L16(String str) { String reStr = parseStrToMd5L32(str); if (reStr != null) { reStr = reStr.substring(8, 24); } return reStr; } // 将字符串转换为16位大写的MD5 public static String parseStrToMd5U16(String str) { String reStr = parseStrToMd5L32(str); if (reStr != null) { reStr = reStr.toUpperCase().substring(8, 24); } return reStr; } }