快捷搜索:  汽车  科技

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签var publicKey = "04e595ad84dac1cd5a9a0387b66648853b3fb62c20985396ee27ef3413422c8c18575d3e8ea2dfff72a470294457455c53e41db63c38155b6a8b0c86397cf2a3e2";var str = "这是需要加密的字符串";引入程序包方法调用过程:var keys = SM2Util.GenerateKeyPair(); //获取密钥对

1.引入 Portable.BouncyCastle 包

项目的解决方案右键,选择“管理解决方案的 NuGet 程序包”,或者选择“菜单栏 - 工具 - NuGet 包管理器 - 管理解决方案的 NuGet 程序包”

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(1)

通过项目解决方案右键

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(2)

通过菜单栏选择

在搜索框中输入“Portable.BouncyCastle”进行查找,选择第一个进行安装,安装完成后即可进行引用。

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(3)

引入程序包

2.SM2算法处理(加密、解密、加签、验签)2.1 SM2

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(4)

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(5)

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(6)

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(7)

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(8)

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(9)

2.2 HexUtils

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(10)

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(11)

2.3 SM2Util工具类

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(12)

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(13)

3.SM2方法调用

方法调用过程:

var keys = SM2Util.GenerateKeyPair(); //获取密钥对

var str = "这是需要加密的字符串";

var publicKey = "04e595ad84dac1cd5a9a0387b66648853b3fb62c20985396ee27ef3413422c8c18575d3e8ea2dfff72a470294457455c53e41db63c38155b6a8b0c86397cf2a3e2";

var privateKey = "7aa40fea43dd8864006c245f28c9d719e5a33a2757cd3938ee40c1670082a49e";

var jmStr = SM2Util.Encrypt(str publicKey); //加密字符串

var jmcStr = SM2Util.Decrypt(jmStr privateKey); //解密字符串

var signStr = SM2Util.Sign(jmStr privateKey); //对加密字符串进行加签

var verifyStr = SM2Util.VerifySign(jmStr publicKey signStr); //对签名进行验签

以下是方法调用调试结果:

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(14)

加密字符串

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(15)

解密字符串

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(16)

加签

知道加密算法和密钥怎么解密?C实现国密SM2非对称算法进行加密解密加签验签(17)

验签

猜您喜欢: