使用Go语言实现SM4和SM2加解密?

现在需要通过这样的流程来实现数据的加解密:
SM2是国密非对称加密 SM4是国密对称加密
(1)加密流程
1、报文发送方随机生成一个密钥(secretIdContent),用该密钥对报文的body整体进行SM4算法加密。把加密的内容作为最终报文的body值。
2、使用报文接收方的公钥,对secretIdContent进行SM2算法加密,放在header的secretId中。

(2)解密流程
1、报文接收方收到报文后,提取header中的secretId内容,然后用自己私钥以国密SM2算法进行解密,获得解密后的密钥,比如为secretIdContent。
2、报文接收方用解密后的密钥内容secretIdContent,对报文中的body使用SM4算法进行解密,得到最终的报文body信息。

现在我有java的实现版本,是用cn.hutool.crypto(hutool)包实现的,现在需要与go的应用联调,需要在go上写加解密流程,我认为算法的实现应该都是一样的,无非就是go引的库/包和java不同,怎么使用go语言来实现上述流程呢?


回答:

https://github.com/emmansun/gmsm

以上是 使用Go语言实现SM4和SM2加解密? 的全部内容, 来源链接: utcz.com/p/945315.html

回到顶部