RSA を使用して暗号化されたメッセージを復号化する必要がありますが、Modulus と Private Exponent は Base64 文字列しかありません。
私のアプローチは、RSAParameter オブジェクトを作成し、RSACryptoProvider.ImportParameters メソッドを使用してインポートすることでした。
RSAParameters decryptParameters = new RSAParameters();
// D is the private exponent parameter
decryptParameters.D = Convert.FromBase64String(d);
// n is the Modulus
decryptParameters.Modulus = Convert.FromBase64String(n);
RSACryptoServiceProvider decrypter = new RSACryptoServiceProvider();
try
{
decrypter.ImportParameters(decryptParameters);
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
問題は、常に「Bad Data」CryptographycException が発生することです。
私は何を間違っていますか?
RSAParameters 構造体の他の値を初期化する必要がありますか? どれ?理論的には、メッセージを復号化するために使用される秘密鍵は (n, d) であり、Modulus パラメーターが n である必要がありますが、実装にはさらに情報が必要なようです。