+-

我有一个程序必须使用RSA私钥解密3个短语,但上面仍然显示该异常,即System.Security.Cryptography.CryptographicException:'Cryptography_OAEPDecoding',我需要对其进行更改以使其起作用?,我已经尝试查看其他页面,但太混乱了,我最终添加了太多注释代码并重新开始。
Exception that pops
我的班级:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;
using System.Security.Cryptography;
namespace ProyectoRSA
{
class RSADecrypt
{
public static string Decryption(string strText)
{
var clave = "<Exponent>AQAB</Exponent><Modulus>qggvlMT/9aYVgBz71c4PjQF+gd/d7xMcHWhJssU7t98/ypMYTMTq7D2nsbM0ZEBkoMPrYC6cZARcLVZ1kOQvLQ==</Modulus><P>xrDQpgmWRhhtganNdBszHpsRm8t7WCJfOet6qZr+qfs=</P><Q>2xM7OVPF9aCLkNZX489+wfxMWpBaGdtB8ay5YijxKvc=</Q><DP>xQzuoPy5EGOBlyq0HAYtuJjJ6dzwQwQztNmZGUQidKk=</DP><DQ>rp3EjewdFKxTsi12voksAtjjzyfR+VwPUt+WoAv8Nn8=</DQ><InverseQ>HQpFONw9FgB9o+dDWOCH+9qUzDTUT/Q7d9o+59WQ1GA=</InverseQ><D>I7m4lZ+W0DxnRBXS7CdxqQTpWcx5yyPOwncJFSDP3WAZNfHvio4KUdFVL6ZI7tl88KSViKZbfEvXB17FsCSfWQ==</D>";
var privateKey = "<RSAKeyValue>" + clave + "</RSAKeyValue>";
var testData = Encoding.UTF8.GetBytes(strText);
using (var rsa = new RSACryptoServiceProvider(1024))
{
try
{
var base64Encrypted = strText;
// server decrypting data with private key
rsa.FromXmlString(privateKey);
var resultBytes = Convert.FromBase64String(base64Encrypted);
var decryptedBytes = rsa.Decrypt(resultBytes, true); //<-- Exception here System.Security.Cryptography.CryptographicException: 'Cryptography_OAEPDecoding'
var decryptedData = Encoding.UTF8.GetString(decryptedBytes);
return decryptedData.ToString();
}
finally
{
rsa.PersistKeyInCsp = false;
}
}
}
}
}
主要:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections;
using System.Security.Cryptography;
namespace ProyectoEspiasSegundaParte
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("INICIO DE LA SEGUNDA PARTE");
//contenido de DOCUMENTO2.dat
var FRASE1 = "IlmhPFKroDuK4AUtBGfaf5J6791DzMenkUBEXfRwZ7rmBHswHTf02LAba / Hs + rsh3wL6dpMQlEhlaIAVHaZZsw ==";
var FRASE2 = "AMbsYR1pq9WYUj3mdqKvJj7tMznqBAcZLxM2C6WzNEUOqKD / qdEE76bNJPmYFKwVei2rhuHFsxh7nUzXmVKRdw ==";
var FRASE3 = "J1jnq551phV + W4MVzE5caXIHqM3E0gz / t9PVtorqvDVqfne8CCF9UQiEk33Rssi1IEz6JH8Fd8ZAvnX3UWe5Vw ==";
//Resultados de la primera parte
//key = 9D2AEA59EC1C7B5AD91687BF6C825862F76B8E9F23FBB8CE
//After Decryption Text = Agente 34.La clave publica y privada RSA de 515 bits es<Exponent>AQAB</ Exponent >< Modulus > qggvlMT / 9aYVgBz71c4PjQF + gd / d7xMcHWhJssU7t98 / ypMYTMTq7D2nsbM0ZEBkoMPrYC6cZARcLVZ1kOQvLQ ==</ Modulus >< P > xrDQpgmWRhhtganNdBszHpsRm8t7WCJfOet6qZr + qfs =</ P >< Q > 2xM7OVPF9aCLkNZX489 + wfxMWpBaGdtB8ay5YijxKvc =</ Q >< DP > xQzuoPy5EGOBlyq0HAYtuJjJ6dzwQwQztNmZGUQidKk =</ DP >< DQ > rp3EjewdFKxTsi12voksAtjjzyfR + VwPUt + WoAv8Nn8 =</ DQ >< InverseQ > HQpFONw9FgB9o + dDWOCH + 9qUzDTUT / Q7d9o + 59WQ1GA =</ InverseQ >< D > I7m4lZ + W0DxnRBXS7CdxqQTpWcx5yyPOwncJFSDP3WAZNfHvio4KUdFVL6ZI7tl88KSViKZbfEvXB17FsCSfWQ ==</ D >
//var claveRSA = "<Exponent>AQAB</ Exponent >< Modulus > qggvlMT / 9aYVgBz71c4PjQF + gd / d7xMcHWhJssU7t98 / ypMYTMTq7D2nsbM0ZEBkoMPrYC6cZARcLVZ1kOQvLQ ==</ Modulus >< P > xrDQpgmWRhhtganNdBszHpsRm8t7WCJfOet6qZr + qfs =</ P >< Q > 2xM7OVPF9aCLkNZX489 + wfxMWpBaGdtB8ay5YijxKvc =</ Q >< DP > xQzuoPy5EGOBlyq0HAYtuJjJ6dzwQwQztNmZGUQidKk =</ DP >< DQ > rp3EjewdFKxTsi12voksAtjjzyfR + VwPUt + WoAv8Nn8 =</ DQ >< InverseQ > HQpFONw9FgB9o + dDWOCH + 9qUzDTUT / Q7d9o + 59WQ1GA =</ InverseQ >< D > I7m4lZ + W0DxnRBXS7CdxqQTpWcx5yyPOwncJFSDP3WAZNfHvio4KUdFVL6ZI7tl88KSViKZbfEvXB17FsCSfWQ ==</ D >";
var decryptedText1 = RSADecrypt.Decryption(FRASE1);
var decryptedText2 = RSADecrypt.Decryption(FRASE2);
var decryptedText3 = RSADecrypt.Decryption(FRASE3);
Console.WriteLine(decryptedText1);
Console.WriteLine(decryptedText2);
Console.WriteLine(decryptedText3);
Console.WriteLine("FIN DEL PROGRAMA2");
}
}
}
0
投票
投票
发生此错误是因为您明确告诉RSA加密服务提供者使用OAEP padding,但是您的密码使用PKCS1填充进行了加密。