依赖包:bcprov-jdk16-1.45.jar
加密key必须16位长度
具体实现如下:
=============================Sm4Util.java==================================
import java.io.UnsupportedEncodingException;
import java.security.Key;
import java.security.Security;
import javax.crypto.Cipher;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
public class Sm4Util {
public static final String ALGORITHM_NAME = "SM4";
public static final String ALGORITHM_NAME_CBC_PADDING = "SM4/CBC/PKCS5Padding";
public static void main(String[] args) throws UnsupportedEncodingException {
String chartSet="UTF-8";
String key = "2E7A29B87B1E02C9";
System.out.println("===================SM4加密解密====================");
String str = "测试232所得税78&*&*";
String s = sm4Encode(str,key,chartSet);
System.out.println("加密结果:" + s);
System.out.println("解密结果:" +sm4Decode(s,key,chartSet));
}
//必须有本静态库,否则会报错
static{
try{
Security.addProvider(new BouncyCastleProvider());

本文介绍了一种使用SM4算法进行数据加密和解密的方法。通过CBC模式和PKCS5填充方式,实现了对字符串的有效保护。代码示例展示了如何使用Java进行SM4加密过程,并提供了完整的加密解密流程。

2万+

被折叠的 条评论
为什么被折叠?



