java生成sm2使用hutool生成公钥私钥

这篇具有很好参考价值的文章主要介绍了java生成sm2使用hutool生成公钥私钥。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

首先引入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://www.toymoban.com/news/detail-695962.html

到了这里,关于java生成sm2使用hutool生成公钥私钥的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 国密SM2 后端Hutool+前端sm-crypto

    在网上找了很多文章,都只是单独说了用后端加解密及前端加解密,很少把两个结合起来一起说的文章,本文分享两者结合起来的用法和踩坑。 前端项目引入第三方包 后端项目引入工具类 使用工具类生成两套公私钥: 服务端公私钥、客户端公私钥 前端拿服务端公钥+客户端私

    2024年04月24日
    浏览(40)
  • 基于hutool 封装国密sm2,sm4 加解密算法

    基于hutool 封装国密sm2,sm4 加解密算法 1. 加入依赖包 2. 编码

    2024年02月13日
    浏览(49)
  • 使用RSA生成公钥和私钥

    可以用keytool工具直接生成,需要openssl工具Binaries - OpenSSLWiki设置到环境变量里 生成的authkey放到gateway下,生成的auth.jks放到auth认证服务下 网关结合鉴权,需要配置如下配置文件                 认证服务配置Bean 接口AuthToolController RSAUtil 依赖 访问localhost:6080/generate/do

    2024年02月12日
    浏览(60)
  • 国密算法SM2实现基于hutool工具类

    首先引入maven 直接上代码

    2024年02月11日
    浏览(55)
  • SM2椭圆曲线公钥密码算法实现项目

    Python 3.9 、PyCharm SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能。 (1)有限域上的椭圆曲线上的点的加法 (2)dB*C1=dB*k

    2024年02月12日
    浏览(44)
  • SM2椭圆曲线公钥密码算法(Python实现)

    Windows11 PyCharm2019.3.3 x64 通过编写代码实现SM2椭圆曲线公钥密码算法,加深对SM2椭圆曲线公钥密码算法的理解,体会该算法在解决实际问题的价值; 将密码学和数学知识相联系,并灵活运用到密码学的设计方案中; 提高实践能力和逻辑思维能力。 random math gmssl SM2算法和RSA算法

    2024年02月02日
    浏览(54)
  • SM2椭圆曲线公钥密码算法--密钥对与数字签名

    SM2算法全称是SM2椭圆曲线公钥密码算法(SM是商用密码的拼音缩写),是一种基于“椭圆曲线”的密码ECC(Elliptic Curve Cryptography)。2016年,SM2成为中国国家密码标准。 在商用密码体系中,SM2主要用于替换RSA加密算法。 SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于

    2024年02月11日
    浏览(46)
  • sm2证书生成(openssl生成公私钥对)—使用

    用上一篇的命令生成公私钥对。 1、sm2PubKey.pem 2、sm2PriKeyPkcs8.pem 3、openssl ec -in sm2PriKeyPkcs8.pem -text 5、工具类 BCECUtil.java SM2Util.java 6、写一个main方法 执行结果: 密钥和命令解析出来的一样。 依赖包:bcprov-jdk15on-1.70.jar SM2加密算法的结果长度,取决于明文长度,没记错的话是

    2024年02月02日
    浏览(40)
  • 商用密码应用与安全性评估要点笔记(SM2公钥加密算法)

    1、SM2算法简介         SM2密码算法是我国2010年发布的商用密码算法,属于公钥密码算法,也成为非对称密钥机制密码算法。SM2基于椭圆曲线离散对数问题,相对于RSA基于大整数因数分解更具优越性。         SM2算法于2012年成为我国密码行业标准,并于2017年被ISO采纳,成为

    2024年02月01日
    浏览(44)
  • 国密算法(SM2)java语言的实现:利用bcprov库来实现SM2算法,非对称算法

    随着密码技术和计算机技术的发展,目前常用的1024位RSA算法面临严重的安全威胁,我们国家密码管理部门经过研究,决定采用SM2椭圆曲线算法替换RSA算法。 SM2是非对称加密算法; SM2是基于椭圆曲线密码的公钥密码算法标准; SM2是国密算法,用于替换RSA/DH/ECDSA/ECDH等国际算法

    2024年02月03日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包