package com.common.core.utils; import cn.hutool.crypto.SmUtil; import cn.hutool.crypto.symmetric.SymmetricCrypto; import org.springframework.core.env.Environment; /** * @author 廖振钦 * @date 20/12/2021 */ public class SM4Utils { private static String password = ""; public static String getPassword() { getInit(); return password; } public static void getInit(){ if(StringUtils.isBlank(password)) { SecretsManagerUtils secretsManagerUtils = SpringContextUtils.getBean(SecretsManagerUtils.class); Environment env = SpringContextUtils.getBean(Environment.class); password = secretsManagerUtils.getSecret(env.getProperty("aws.secrets.sm4")).getString("SM4Secret"); } } public static String decrypt(String text){ getInit(); if(text.startsWith("DES@")) { SymmetricCrypto sm4 = SmUtil.sm4(password.getBytes()); return sm4.decryptStr(text); } return text; } public static String decryptStr(String text){ if(null == text || "".equals(text)){ return text; } getInit(); SymmetricCrypto sm4 = SmUtil.sm4(password.getBytes()); return sm4.decryptStr(text); } public static String encryptStr(String text){ if(null == text || "".equals(text)){ return text; } getInit(); SymmetricCrypto sm4 = SmUtil.sm4(password.getBytes()); return sm4.encryptHex(text); } }