关于国密SM2,SM3,SM4 使用

最近做一个猜盲盒(没有示例)对接银行的接口 对报文加签验签使用sm3withsm2算法 数字信封按sm4随机生成一把对称密钥 然后使用sm4密钥对报文进行加密 在使用公钥将其生成数字信封

依赖 BouncyCastle 类库

 var sm1 = new SM2(
            SM2.KeyPair.ImportKeyPairFromHexString(
                "私钥",
                "公钥" 
                ),
                SM2.CipherFormat.C1C3C2,
                "1234567812345678".FromASCIIString());
var secret = SM4.GenerateSecretKey();//随机生成一把对称密钥
var sm4 = new SM4(secret.Key, null, System.Security.Cryptography.CipherMode.ECB);

对报文以GBK编码形式进行加密

 var cipher = sm4.Encrypt(data.FromCharsetString("GBK"));

依据密文生成签名 并以rs编码格式展现 依赖库签名是以ASN.1格式编码

var sign = To_RS(sm1.Sign(cipher.ToHex().FromASCI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值