当前位置:   article > 正文

Java进行国密SM2加密和解密实现_java sm2加解密

java sm2加解密

前言

本文讲解java进行国密sm2加密和解密实现。

国密即国家密码局认定的国产密码算法。主要有SM1,SM2,SM3,SM4。密钥长度和分组长度均为128位。

SM2介绍

SM2为非对称加密,基于ECC。该算法已公开。由于该算法基于ECC,故其签名速度与秘钥生成速度都快于RSA。ECC 256位(SM2采用的就是ECC 256位的一种)安全强度比RSA 2048位高,但运算速度快于RSA。
旧标准的加密排序C1C2C3 新标准 C1C3C2,C1为65字节第1字节为压缩标识,这里固定为0x04,后面64字节为xy分量各32字节。C3为32字节。C2长度与原文一致。

如何生成私钥和公钥

参考博主另一篇文章:《国密GmSSL v2版本命令行方式生成国密sm2私钥、公钥、签名和验证签名》

关于hutool库生成的私钥有问题

使用hutool库中的sm2生成的私钥公钥是有问题的,无法被其他国密sm2所认可。

依赖

首先,需要引入Bouncy Castle的库来实现国密加密。在pom.xml中添加以下依赖:

<depend
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/448883
    推荐阅读
    相关标签
      

    闽ICP备14008679号