java生成sm2/hutool生成公钥私钥代码示例

 更新时间:2023年09月26日 10:28:39   作者:是个杏仁  
这篇文章主要给大家介绍了关于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还有很多强大的工具类,方便程序员们的调用

总结

到此这篇关于java生成sm2/hutool生成公钥私钥的文章就介绍到这了,更多相关java hutool生成公钥私钥内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • java  hibernate使用注解来定义联合主键

    java hibernate使用注解来定义联合主键

    这篇文章主要介绍了java hibernate使用注解来定义联合主键的相关资料,需要的朋友可以参考下
    2017-01-01
  • Java设计模式中的外观模式详解

    Java设计模式中的外观模式详解

    这篇文章主要介绍了Java设计模式中的外观模式详解,外观模式也叫“过程模式,外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用
    2022-07-07
  • Java 反射调用静态方法的简单实例

    Java 反射调用静态方法的简单实例

    下面小编就为大家带来一篇Java 反射调用静态方法的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-06-06
  • SpringBoot项目中application.yml和bootstrap.yml文件的区别及说明

    SpringBoot项目中application.yml和bootstrap.yml文件的区别及说明

    `application.yml`和`bootstrap.yml`都是Spring Boot项目中的配置文件,但它们在加载时机、用途、优先级、配置来源、适用场景和是否必须存在等方面存在区别
    2025-03-03
  • SpringBoot集成Mybatis的实现步骤

    SpringBoot集成Mybatis的实现步骤

    这篇文章主要介绍了SpringBoot集成Mybatis的实现步骤,本文通过SpringBoot +MyBatis 实现对数据库学生表的查询操作,需要的朋友可以参考下
    2020-12-12
  • 浅谈一下Java中的访问修饰符以及作用

    浅谈一下Java中的访问修饰符以及作用

    这篇文章主要介绍了浅谈一下Java中的访问修饰符以及作用,修饰符修饰的是“被访问”的权限,所有修饰符都可以修饰成员变量,方法,构造方法,需要的朋友可以参考下
    2023-05-05
  • Spring框架生成图片验证码实例

    Spring框架生成图片验证码实例

    验证码在很多地方都会遇到,实现的方法和形式也有很多,主要的目的就是为了安全,防止一些恶意的攻击等。今天在之前搭建好的一个spring框架上写了一个验证码的生成demo,我会贴出细节代码,但是spring的配置就不在介绍了,有需要的可以参考借鉴。
    2016-08-08
  • 解决java idea新建子目录时命名不是树形结构的问题

    解决java idea新建子目录时命名不是树形结构的问题

    这篇文章主要介绍了解决java idea新建子目录时命名不是树形结构的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • SpringBoot项目防止反编译的方案

    SpringBoot项目防止反编译的方案

    最近项目要求部署到其他公司的服务器上,但是又不想将源码泄露出去,要求对正式环境的启动包进行安全性处理,防止客户直接通过反编译工具将代码反编译出来,所以本文给大家介绍了SpringBoot项目如何防止反编译,需要的朋友可以参考下
    2024-01-01
  • Gradle配置国内镜像加速指南(最全最详细)

    Gradle配置国内镜像加速指南(最全最详细)

    在使用 Gradle 进行 Java、Android 或其他 JVM 项目开发时,最令人头疼的问题之一就是依赖下载速度慢,所以本文将提供最详细最全面的 Gradle 配置国内镜像的指南,希望对大家有所帮助
    2025-08-08

最新评论