c#关于RSA私钥解密的问题

zhu5152 2019-04-11 05:37:53
需求:私钥解密,对方提供私钥,和加密文本,我们进行解密。
但是在解密的时候报参数错误
rsa.Decrypt(dataToDec, false) 这句话会报参数错误


/// <summary>
/// RSA的解密函数 stirng
/// </summary>
/// <param name="privateKey">私钥</param>
/// <param name="ciphertext">密文字符串</param>
/// <returns></returns>
public static string Decrypt(string privateKey, string ciphertext)
{
return Decrypt(privateKey, Convert.FromBase64String(ciphertext));
}

/// <summary>
/// RSA的解密函数 byte
/// </summary>
/// <param name="privateKey">私钥</param>
/// <param name="cipherbytes">密文字节数组</param>
/// <returns></returns>
public static string Decrypt(string privateKey, byte[] cipherbytes)
{
using (RSACryptoServiceProvider rsa = new RSACryptoServiceProvider())
{
//rsa.FromXmlString(Encoding.UTF8.GetString(Convert.FromBase64String(privateKey)));
rsa.FromXmlString(privateKey);
int keySize = rsa.KeySize / 8;
byte[] buffer = new byte[keySize];
using (MemoryStream msInput = new MemoryStream(cipherbytes))
{
using (MemoryStream msOutput = new MemoryStream())
{
int readLen;

while ((readLen = msInput.Read(buffer, 0, keySize)) > 0)
{
byte[] dataToDec = new byte[readLen];
Array.Copy(buffer, 0, dataToDec, 0, readLen);
byte[] decData = rsa.Decrypt(dataToDec, false);
msOutput.Write(decData, 0, decData.Length);
}

byte[] result = msOutput.ToArray();
rsa.Clear();

return Encoding.UTF8.GetString(result);
}
}
}
}


密文:(16进制编码后的)4C788BAE2C7BCD05855BFD5F1E29C104AEEDCF34A4DC4325E0663699E7108D87EBCE5FDB945B64D73E2FFABE878C7A26498C5E961B716CD25C26309E0A6E9717E6F67D750233790AC2666DFBB1F675F2BC42C0C17E9A266FECFC1C3BDBF524001406E2D59EA4FF96C2ADDBD422FC4C3E02F3FA50B2BDF51F6C72004417B4E5D8| (最后个‘|’可能是多余的)

私钥:MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIYKBEmcf03qYeVRV9P+Gal/bV+8
BaSxhJQT7WeYbjwtx7ptbAfQAvfJk7mMPHztifKFVI0zxZ/nosquyXiqPQGMo0Uh31LTfnMQUgfI
jvDKkzffjlBh3vwK05ardwg3cwidhu+WQrcV1fJIlcrLv50yvXhLISG0wsmjaJ7/C6X3AgMBAAEC
gYBJG3OFNr9Unu7wJXKy5JfYk/Dy01l8n3oBTfEhnMkbN5kFPKM8i57iyWYyQKPJO8IOrdwU+9Th
R3TJ+ZVXo/qLa7HTN96Uj9eO/6mDR1AXCOE4jcOD1+ZH/g7TKl/w+qikatmizhFr//AQ3EvL9mb+
Aq8rDFZFUbPV7bU+BxjgmQJBAOdtLVBGaLgRJcOjR8G77NUtJHK/9XdU5bFN1LoobWQBkO8Z1K5j
z2iQ/DD4/nD4FYtsQVHqQJAM2fg04hGKla0CQQCURZPbWmrLlCf0xHGZPQIamHL8TrDkHxrAdf/7
9LidasGd3h0/8gbQXnzPn8aWgJiX+a1vExKeGk/iWq3HLLazAkA/7fDulASplFMSUDCqW/d4jBfd
exmb9V/eMtno8vIFBkm7Qy91XS0Wfbas8JuZKW8KLMV+k29yW5p67mDk55uhAkA3bwPmgJlo301I
76Dg/7QnqVNkDS+JOi/QQM2hr07OW7ljgkVBQQVXJdxX645delqShyBWZLUTMxcms2xBCPCNAkEA
lqx5kADn8UaGUgvddRVhRG5Pd75KEXq6weWZztMmjTu4AnBMvupS/aReCHlKWSduNq1HmufTQ5hd
Uc2yItlvrg==

...全文
251 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
泡泡龙 2019-04-11
  • 打赏
  • 举报
回复
我来了,分给我就行
zhu5152 2019-04-11
  • 打赏
  • 举报
回复
来接分了 有人么
zhu5152 2019-04-11
  • 打赏
  • 举报
回复
在CSDN上拜读了 几篇 ‘娃都会打酱油了’大神的博客 还是百思不得其解

110,537

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧