SM4加密数据
1、POM引入
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.11</version> <!-- 2025年8月最新稳定版 -->
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.70</version>
</dependency>
2、SM4加密、解密应用
static {
try {
Security.addProvider(new BouncyCastleProvider());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*SM4 加密
*
*/
public static String encrypt(String context,String key){
SymmetricCrypto sm4Crypto = new SymmetricCrypto("SM4",key.getBytes());
String encryptHex = sm4Crypto.encryptHex(context);
return encryptHex;
}
/**
*SM4 解密
*
*/
public static String decrypt(String context,String key){
SymmetricCrypto sm4Crypto = new SymmetricCrypto("SM4",key.getBytes());
String decryptHex = sm4Crypto.decryptStr(context, CharsetUtil.CHARSET_UTF_8);
return decryptHex;
}
public static void main(String[] args) {
String context = "大鹏一日同风起,扶摇直上九万里。King....Peng";
String key = "KmKmyuF7OJFVn2uB";
String encryptHex = encrypt(context,key);
System.out.println("加密后:"+encryptHex);
String decryptHex = decrypt(encryptHex,key);
System.out.println("解密后:"+decryptHex);
}
执行结果:

浙公网安备 33010602011771号