comment déchiffrer un texte chiffré à l'aide de RSACryptoServiceProvider?

J'ai chiffré d'un texte à l'aide de RSACryptoServiceProvider. J'ai exporté la clé publique et privée. Évidemment, je veux juste exposer la clé publique à l'intérieur du décodeur application, donc j'ai écrit un code comme suit :

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;
        }

Mais une exception est renvoyée à la ligne "byte[] plainBytes = rsa.Décrypter(encryptedKeyAsBytes, false);"
et dit "la Clé n'existe pas." Cependant, si j'expose l'ensemble de la clé privée et publique, alors il runns heureusement. Alors, comment puis-je déchiffrer les données en utilisant uniquement la clé publique de l'information?

OriginalL'auteur user848609 | 2011-07-20