最近做一个猜盲盒(没有示例)对接银行的接口 对报文加签验签使用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