首页 > 基础资料 博客日记
Java之SM4解密与解密
2024-04-04 03:00:09基础资料围观545次
这篇文章介绍了Java之SM4解密与解密,分享给大家做个参考,收藏Java资料网收获更多编程知识
在线加密工具链接
在线SM4国密加密/解密—LZL在线工具在线SM4国密加密/解密https://lzltool.cn/SM4
根据项目选择相应数据格式
pom.xml引入一下jar包
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.7</version> </dependency>
<dependency> <groupId>org.bouncycastle</groupId> <artifactId>bcpkix-jdk15on</artifactId> <version>1.70</version> </dependency>
实现SM4加密和解密代码部分
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.Mode;
import cn.hutool.crypto.Padding;
import cn.hutool.crypto.symmetric.SM4;
import java.io.IOException;
public class Sm4Utils {
public Sm4Utils() {
}
//加密为16进制,也可以加密成base64/字节数组
public static String encryptSm4(String plaintext, String key, String iv) {
SM4 sm4 = new SM4(Mode.CBC, Padding.PKCS5Padding, key.getBytes(), iv.getBytes());
return sm4.encryptBase64(plaintext);
}
//解密
public static String decryptSm4(String ciphertext, String key,String iv) {
SM4 sm4 = new SM4(Mode.CBC, Padding.PKCS5Padding, key.getBytes(), iv.getBytes());
return sm4.decryptStr(ciphertext, CharsetUtil.CHARSET_UTF_8);
}
public static void main(String[] args) throws IOException {
String plainText = "文字内容";
Sm4Utils sm4 = new Sm4Utils();
String key = "输入key值";
String iv = "输入iv值";
System.out.println("CBC模式加密");
String cipherText = sm4.encryptSm4(plainText, key,iv);
System.out.println("密文: " + cipherText);
System.out.println();
System.out.println("CBC模式解密");
String iv1= "iv值";
String data= "RddoC3+TFYWB+JgxfYkBxQ6GH/iMVpgCtGMpPkZ5yCcHrK5/IS68EUWaRKQ7PBbTxy4A60SBQETlKO3jQrPvAPDShrpihOMpjIxFfobr+8rA0qoEBE5oD+SXZv4iDSANFjEMguinl1DEc0Xj9LjJ2g==";
String plainText1 = sm4.decryptSm4(data, key,iv1);
System.out.println("明文: " + plainText1);
System.out.println();//
}
}
文章来源:https://blog.csdn.net/weixin_43968720/article/details/132626965
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- springboot~3.x项目中使用集成测试
- Java测试类、工具类与JavaBean对比解析
- SpringBoot-日志
- springboot~http2的支持
- 解疑释惑 - 日志体系之 slf4j + logback 组合(一)
- Web server failed to start. Port 8080 was already in use. 端口被占用
- Springboot 项目配置多数据源
- 伙伴匹配系统(移动端 H5 网站(APP 风格)基于Spring Boot 后端 + Vue3 - 05
- 剑指offer-23、搜索⼆叉树的后序遍历序列
- 一个表示金额的数字是 100000000L,这是多少米?