Я зашифровал текст с помощью RSACryptoServiceProvider. Я экспортировал открытый и закрытый ключи. Очевидно, я просто хочу открыть открытый ключ внутри приложения декодера, поэтому я написал код следующим образом:
private const string PublicKey = "<RSAKeyValue><Modulus>sIzQmj4vqK0QPd7RXKigD7Oi4GKPwvIPoiUyiKJMGP0qcbUkRPioe2psE/d3c1a2NY9oj4Da2y1qetjvKKFad2QAhXuql/gPIb1WmI+f6q555GClvHWEjrJrD/ho7SLoHbWd6oY6fY609N28lWJUYO97RLVaeg2jfNAUSu5bGC8=</Modulus><Exponent>AQAB</Exponent></RSAKeyValue>";
private string Decrypt()
{
byte[] encryptedKeyAsBytes = Convert.FromBase64String(_encryptedKey);
RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
rsa.FromXmlString(PublicKey);
// read ciphertext, decrypt it to plaintext
byte[] plainBytes = rsa.Decrypt(encryptedKeyAsBytes, false);
string plainText = System.Text.Encoding.ASCII.GetString(plainBytes);
return plainText;
}
Но в строке выдается исключение "byte [] plainBytes = rsa.Decrypt (encryptedKeyAsBytes, false);"
и говорит "Ключ не существует". Однако, если я открою весь закрытый и открытый ключ, он будет счастлив. Так как же мне расшифровать данные, используя только информацию открытого ключа?