晚上有网友说,下载购买了软件后发现计算的加密后内容跟网上其他工具算出来的不一样。于是怀疑工具是不是算的不对。
这里统一回复下,软件算的没问题的。由于加密的随机数不一样,每次加密的密文内容也是不一样的。不要去比对密文内容是否一致,随机数不一样每次加密的内容都会不一样。而要看能否解密出来。若果还有其他疑问,欢迎留言或者加我QQ联系。
推荐几个网上测试sm2的网站:
可以这样测试下:
用我的工具加密,使用同样的密钥,用网上的工具解密,看解密出来的明文是否正确。
以下是我的验证:
网上工具算的如下,使用相同的秘钥,把工具生成的密文在网站上输入进去解密以下。解密结果如图所示:
再来测下验签:
用工具生成的签名,填入网站里去验签,看能否通过。结果是通过的。
需要注意的是,如果使用网站上生成的签名,拿这个工具验签的话,需要在xB(公钥x的位置)最前面补上个02或03.否则会收到提示:
====sm2签名验证====
tips:目前仅支持压缩公钥,请在xB处输入33字节压缩公钥值。
因为为了省事,目前仅需要输入压缩公钥即可。SM2一般用到的或者第三方提供的公钥都是压缩过的,长度为66个长度,既33字节。其实yB不需要输入,有了xB的压缩公钥,yB工具自己就算出来了。其实xB没有压缩,前面的02或03算是系数,后面的32字节就是xB. yB是根据xB算出来的。因此没必要用非压缩公钥。当然若给全了xB和yB,那就照样用呗。