2011-12-19 29 views
0

Java(RSA/ECB/PKCS1Padding)の暗号クラスと私たちが事前に交換した公開鍵を使用して暗号化された文字列があります。RSA/ECB/PKCS1Paddingを使用してJavaで暗号化され、.NETで解読できない

秘密鍵を使用してその文字列を復号したいのですが、これは私のコードです。

X509Certificate2 cert = new X509Certificate2("c:\\test.pfx", "test"); 
     string s =    "very long encrypted data"; 

     RSACryptoServiceProvider privateKeyProvider = (RSACryptoServiceProvider)cert.PrivateKey; 

     string decryptedTest = System.Text.Encoding.UTF8.GetString(privateKeyProvider.Decrypt(Convert.FromBase64String(s), true)); 

エラーメッセージが表示されて例外が表示されます。

:私が間違ってやっていることは何ですか

「System.Security.Cryptography.CryptographicException OAEPパディングのデコード中にエラーが発生しましたか」?

+0

どのラインで例外が発生しますか? – gdoron

答えて

0

Decryptを呼び出し、2番目のパラメータをfalseに設定します。 MSDN

... PKCS#1 v1.5パディングを使用すると偽です。

+0

私はそれを理解しましたが、私はあなたに信用を与えます。私はあなたの時間を感謝します。 –

+0

あなたは大歓迎です:) – kol

0

これは作業コードです。

X509Certificate2 cert = new X509Certificate2("c:\\test.pfx", "test"); 
    string s =    "very long encrypted data"; 

    RSACryptoServiceProvider privateKeyProvider = (RSACryptoServiceProvider)cert.PrivateKey; 

    string decryptedTest = System.Text.Encoding.UTF8.GetString(privateKeyProvider.Decrypt(Convert.FromBase64String(s), true)); 
関連する問題