支付平台公私钥加密
数字证书 签名与验证签名,采用RSA的公私钥体系。签名与验证签名都采用MD5withRSA算法。本XMl内容采用GBK编码格式
1、主动发送XMl报文或其他格式的报文,先用私钥证书xxx.pfx签名,然后Base64编码,然后发送。代码如下
比如发送内容为;String xmlContent ="************";
//创建xxx.pfx证书文件 证书密码为111111
X509Certificate2 objx5092 = new X509Certificate2(@“xxx.pfx”, "111111");
System.Security.Cryptography.RSACryptoServiceProvider rsa = objx5092.PrivateKey as RSACryptoServiceProvider;
hashvalue = rsa.SignData(data, "MD5");//为证书采用MD5withRSA 签名
string check = Convert.ToBase64String(hashvalue);//签名后进行Base64编码 字符串check内容为发送的内容
2、接收的XMl报文或其他格式报文,先用Base64解码,然后用公钥xxx.cer进行签名验证
//创建公钥证书要发送内容即 xmlContent 的数组字节内容
byte[] data = Encoding.GetEncoding("GBK").GetBytes(xmlContent);
X509Certificate2 pub = new X509Certificate2(@“xxx.cer”);
RSACryptoServiceProvider rsaPublic = pub.PublicKey.Key as RSACryptoServiceProvider;
//签名验证
if (rsaPublic.VerifyData(data, "MD5", hashvalue))
{
//通过执行内容
----------
}

这篇博客介绍了如何在C#中使用MD5withRSA算法进行数字签名和验证签名,主要应用于支付平台的报文加密。首先,使用私钥对XML报文进行签名并Base64编码;接收端则通过公钥解码并验证签名的正确性。
最低0.47元/天 解锁文章
910

被折叠的 条评论
为什么被折叠?



