支付平台公私钥加密
数字证书 签名与验证签名,采用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))
{
//通过执行内容
----------
}