首页 > 基础资料 博客日记
java生成sm2使用hutool生成公钥私钥
2024-03-07 04:00:05基础资料围观742次
这篇文章介绍了java生成sm2使用hutool生成公钥私钥,分享给大家做个参考,收藏Java资料网收获更多编程知识
首先引入maven依赖
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15to18</artifactId>
<version>1.69</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.16</version>
</dependency>
然后运行以下代码
KeyPair pair = SecureUtil.generateKeyPair("SM2");
byte[] privateKey = pair.getPrivate().getEncoded();
byte[] publicKey = pair.getPublic().getEncoded();
//私钥
String privateKeyStr=Base64.getEncoder().encodeToString(privateKey);
//公钥
String publicKeyStr=Base64.getEncoder().encodeToString(publicKey);
就可以得到私钥和公钥
公钥提供给通讯方验签
下面是签名的代码
String content = "我是Hanley.";
final SM2 sm2 = SmUtil.sm2(privateKeyStr,null);
String sign = sm2.signHex(HexUtil.encodeHexStr(content));
验签代码
final SM2 sm2 = SmUtil.sm2(null,publicKeyStr);
// true
boolean verify = sm2.verifyHex(HexUtil.encodeHexStr(content), sign);
加密
// 公钥加密,私钥解密
SM2 sm2 = SmUtil.sm2(null, publicKey);
String encryptStr = sm2.encryptBcd(text, KeyType.PublicKey);
解密
// 公钥加密,私钥解密
SM2 sm2 = SmUtil.sm2(privateKeyStr, null);
String decryptStr = StrUtil.utf8Str(sm2.decryptFromBcd(encryptStr, KeyType.PrivateKey));
好了,以上就是sm2util的使用介绍了,hutool还有很多强大的工具类,方便程序员们的调用
文章来源:https://blog.csdn.net/t_1000poke/article/details/131928448
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- docker全名令解析
- 小华HC32L176KATA单片机最小系统ISP烧录说明
- Windows 下切换 Java 环境太复杂了,我做了个 cli 工具,可以快速安装,切换 Java 版本
- SHP文件与PostGIS数据库Geom字段:WKT和EWKB相互转换SQL
- Spring AI 2.0 GA 倒计时:先别急,来看看 Java AI 框架的另一条路
- HEIC 批量转 JPG - 一键转换苹果 HEIC 格式为 JPG/PNG,保留 EXIF 信息,支持批量处理
- 【php】老旧PHP项目(PHP 5.6)本地环境搭建与踩坑记录
- Vue3 轻量安全滑动拼图验证码:vue-sliding-puzzle 上手全攻略
- 多市场行情时间戳对齐:UTC 存储的夏令时陷阱与数据库设计方案
- 15. 别再硬写提示词了!LangChain ChatPromptTemplate核心实战

