关于SM2算法工具的一点儿说明

Posted 特立独行的猫a

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于SM2算法工具的一点儿说明相关的知识,希望对你有一定的参考价值。

晚上有网友说,下载购买了软件后发现计算的加密后内容跟网上其他工具算出来的不一样。于是怀疑工具是不是算的不对。

这里统一回复下,软件算的没问题的。由于加密的随机数不一样,每次加密的密文内容也是不一样的。不要去比对密文内容是否一致,随机数不一样每次加密的内容都会不一样。而要看能否解密出来。若果还有其他疑问,欢迎留言或者加我QQ联系。

推荐几个网上测试sm2的网站:

SM2加解密

SM2 在线加密工具

可以这样测试下:

用我的工具加密,使用同样的密钥,用网上的工具解密,看解密出来的明文是否正确。

以下是我的验证:

网上工具算的如下,使用相同的秘钥,把工具生成的密文在网站上输入进去解密以下。解密结果如图所示:

再来测下验签:

用工具生成的签名,填入网站里去验签,看能否通过。结果是通过的。

 需要注意的是,如果使用网站上生成的签名,拿这个工具验签的话,需要在xB(公钥x的位置)最前面补上个02或03.否则会收到提示:

====sm2签名验证====

tips:目前仅支持压缩公钥,请在xB处输入33字节压缩公钥值。

因为为了省事,目前仅需要输入压缩公钥即可。SM2一般用到的或者第三方提供的公钥都是压缩过的,长度为66个长度,既33字节。其实yB不需要输入,有了xB的压缩公钥,yB工具自己就算出来了。其实xB没有压缩,前面的02或03算是系数,后面的32字节就是xB. yB是根据xB算出来的。因此没必要用非压缩公钥。当然若给全了xB和yB,那就照样用呗。

以上是关于关于SM2算法工具的一点儿说明的主要内容,如果未能解决你的问题,请参考以下文章

SM2 国密算法工具QT版,彻底搞懂国密算法的使用

SM2椭圆曲线公钥密码算法

国家密码标准-商密SM2官方文档整理

国密SM2前端VUE,后端Hutool工具的搭配

密码技术--国密SM2椭圆曲线公钥密码算法及Go语言应用

Java笔记-SM2(国密2)的调用及SM2SM3SM4使用场景