RSACryptoServiceProviderを使用してテキストを暗号化しました。私は公開鍵と秘密鍵をエクスポートしました。もちろん、私はちょうどデコーダアプリケーション内部の公開鍵を公開したいので、私は次のようにコードを書かれている: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;
}
をしかし、例外がライン「バイト[] plainBytes = rsa.Decrypt(encryptedKeyAsBytes、偽でスローされます); " と、「キーが存在しません」と表示されます。しかし私が秘密鍵と公開鍵全体を公開すると、それは楽しく実行されます。では、公開鍵情報のみを使用してデータをどのように復号化できますか?
私は秘密鍵だけを渡すことができますか? – user848609
公開鍵を隠すにはどうすればいいですか? – user848609
あなたは秘密鍵を隠すことを意味します、そうですか?公開鍵を安全に公開できるためです。 – emboss