1 /// <summary>
2 /// 用私钥给数据进行RSA加密
3 /// </summary>
4 /// <param name="xmlPrivateKey">私钥</param>
5 /// <param name="strEncryptString">待加密数据</param>
6 /// <returns>加密后的数据(Base64)</returns>
7 public static string RSAEncryptByPrivateKey(string xmlPrivateKey, string strEncryptString)
8 {
9 //加载私钥
10 RSACryptoServiceProvider privateRsa = new RSACryptoServiceProvider(1024);
11 privateRsa.FromXmlString(xmlPrivateKey);
12
13 //转换密钥
14 AsymmetricCipherKeyPair keyPair = DotNetUtilities.GetKeyPair(privateRsa);
15
16 IBufferedCipher c = CipherUtilities.GetCipher("RSA/ECB/PKCS1Padding");// 参数与Java中加密解密的参数一致
17 //第一个参数为true表示加密,为false表示解密;第二个参数表示密钥
18 c.Init(true, keyPair.Private);
19
20 byte[] DataToEncrypt = Encoding.UTF8.GetBytes(strEncryptString);
21 byte[] outBytes = c.DoFinal(DataToEncrypt);//加密
22 string strBase64 = Convert.ToBase64String(outBytes);
23
24 return strBase64;
25 }