1.从 https://www.nuget.org/packages/BouncyCastle/下载对应的nupkg包,放到本地一个文件夹中
2.打开VS2010,工具—>NuGet程序包管理器设置—>程序包管理器设置
3.增加程序包源
4.工具—>管理解决方案的程序包源,找到刚才新增加的程序包源名称,安装对应的程序包源即可
5.安装之后,已经引入到该解决方案中
6.代码如下:
1 public string PrivateKeySignResult(string privateKey, string data) 2 { 3 string result = string.Empty; 4 5 var rsa = new RSACryptoServiceProvider(); 6 RsaPrivateCrtKeyParameters privateKeyParam = (RsaPrivateCrtKeyParameters)PrivateKeyFactory.CreateKey(Convert.FromBase64String(privateKey)); 7 //RSA 私钥格式转换 8 privateKey = string.Format("<RSAKeyValue><Modulus>{0}</Modulus><Exponent>{1}</Expon ent><P>{2}</P><Q>{3}</Q><DP>{4}</DP><DQ>{5}</DQ><InverseQ>{6}</InverseQ><D>{ 7}</D></RSAKeyValue>", 9 Convert.ToBase64String(privateKeyParam.Modulus.ToByteArrayUnsigned()), 10 Convert.ToBase64String(privateKeyParam.PublicExponent.ToByteArrayUnsigned()), 11 Convert.ToBase64String(privateKeyParam.P.ToByteArrayUnsigned()), 12 Convert.ToBase64String(privateKeyParam.Q.ToByteArrayUnsigned()), 13 Convert.ToBase64String(privateKeyParam.DP.ToByteArrayUnsigned()), 14 Convert.ToBase64String(privateKeyParam.DQ.ToByteArrayUnsigned()), 15 Convert.ToBase64String(privateKeyParam.QInv.ToByteArrayUnsigned()), 16 Convert.ToBase64String(privateKeyParam.Exponent.ToByteArrayUnsigned())); 17 //privateKey 为C# .net 格式使用的应用私钥 18 rsa.FromXmlString(privateKey); 19 // data 为参数数据 20 byte[] signBytes = rsa.SignData(Encoding.UTF8.GetBytes(data), CryptoConfig.CreateFromName("SHA256")); // 得到 Base64 编码格式签名值,即接口请求参数中的 sign 值 21 result = Convert.ToBase64String(signBytes); 22 23 return result; 24 }