package tech.powerjob.common.utils; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import java.math.BigInteger; import java.security.MessageDigest; /** * 加密工具 * * @author tjq * @since 2023/3/25 */ public class DigestUtils { /** * 32位小写 md5 * @param input 输入 * @return md5 */ @SneakyThrows public static String md5(String input) { if (StringUtils.isEmpty(input)) { return null; } MessageDigest md5 = MessageDigest.getInstance("MD5"); md5.update(input.getBytes()); byte[] byteArray = md5.digest(); BigInteger bigInt = new BigInteger(1, byteArray); // 参数16表示16进制 StringBuilder result = new StringBuilder(bigInt.toString(16)); // 不足32位高位补零 while(result.length() < 32) { result.insert(0, "0"); } return result.toString(); } public static String rePassword(String password, String salt) { String f1 = String.format("%s_%s_z", salt, password); return String.format("%s_%s_b", salt, md5(f1)); } }