System.Security.Cryptography.CryptographicException: 'Cryptography_OAEPDecoding'

System.Security.Cryptography.CryptographicException: 'Cryptography_OAEPDecoding'

我有一个程序必须使用 RSA 私钥解密 3 个短语,但一直显示上面的异常,System.Security.Cryptography.CryptographicException:'Cryptography_OAEPDecoding',我需要更改什么才能让它工作?,我试过查看其他页面,但太混乱了,最后我添加了太多注释代码并重新开始。

Exception that pops

发生错误是因为您明确告诉 RSA 加密服务提供商使用 OAEP padding 但您的密码是使用 PKCS1 填充加密的。

// Your current statement:
var decryptedBytes = rsa.Decrypt(resultBytes, true);

第二个参数(fOAEP 记录如下:

//   fOAEP:
//     true to perform direct System.Security.Cryptography.RSA decryption using
//     OAEP padding (only available on a computer running Microsoft Windows XP or
//     later); otherwise, false to use PKCS#1 v1.5 padding.

所以只需更改为 false;

var decryptedBytes = rsa.Decrypt(resultBytes, false);

我们得到以下输出:

INICIO DE LA SEGUNDA PARTE
M A N D A   C O R R E O   A   J A V I E R   B E L
C O N   T U   N O M B R E   C O M P L E T O
Y   L A   F E C H A / H O R A

重要旁注:

可能 copy/pasting,您的 base64 密码不正确。我这样更正它们:

var FRASE1 = "IlmhPFKroDuK4AUtBGfaf5J6791DzMenkUBEXfRwZ7rmBHswHTf02LAba/Hs+rsh3wL6dpMQlEhlaIAVHaZZsw==";
var FRASE2 = "AMbsYR1pq9WYUj3mdqKvJj7tMznqBAcZLxM2C6WzNEUOqKD/qdEE76bNJPmYFKwVei2rhuHFsxh7nUzXmVKRdw==";
var FRASE3 = "J1jnq551phV+W4MVzE5caXIHqM3E0gz/t9PVtorqvDVqfne8CCF9UQiEk33Rssi1IEz6JH8Fd8ZAvnX3UWe5Vw==";