+-
System.Security.Cryptography.CryptographicException:'Cryptography_OAEPDecoding'

我有一个程序必须使用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填充进行了加密。