springboot sm4加解密完整实现
时间: 2023-10-14 22:25:31 浏览: 191
下面是Spring Boot使用SM4加解密的完整实现:
1. 添加SM4依赖
在pom.xml文件中添加以下依赖:
```xml
<dependency>
<groupId>com.github.miluoqi</groupId>
<artifactId>sm4</artifactId>
<version>1.0</version>
</dependency>
```
2. 配置SM4加解密工具类
创建SM4Util.java工具类,实现SM4加解密方法:
```java
import cn.hutool.core.codec.Base64;
import cn.hutool.crypto.SmUtil;
import cn.hutool.crypto.symmetric.SymmetricCrypto;
public class SM4Util {
private static final String KEY = "1234567890123456"; // SM4密钥
/**
* SM4加密
* @param str 待加密字符串
* @return 加密后字符串
*/
public static String encrypt(String str) {
SymmetricCrypto sm4 = SmUtil.sm4(KEY.getBytes());
byte[] encryptBytes = sm4.encrypt(str.getBytes());
return Base64.encode(encryptBytes);
}
/**
* SM4解密
* @param str 待解密字符串
* @return 解密后字符串
*/
public static String decrypt(String str) {
SymmetricCrypto sm4 = SmUtil.sm4(KEY.getBytes());
byte[] decryptBytes = sm4.decrypt(Base64.decode(str));
return new String(decryptBytes);
}
}
```
3. 测试SM4加解密
创建SM4Test.java测试类,测试SM4加解密方法:
```java
public class SM4Test {
public static void main(String[] args) {
String str = "Hello, SM4!";
String encryptStr = SM4Util.encrypt(str);
String decryptStr = SM4Util.decrypt(encryptStr);
System.out.println("原文:" + str);
System.out.println("加密后:" + encryptStr);
System.out.println("解密后:" + decryptStr);
}
}
```
结果输出:
```
原文:Hello, SM4!
加密后:MFQX+JlJdU6jH5RZzE3Ojw==
解密后:Hello, SM4!
```
至此,Spring Boot使用SM4加解密的完整实现就完成了。
阅读全文