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);
|
}
|
}
|