Зашифрованный в Java с использованием RSA / ECB / PKCS1Padding, который невозможно расшифровать в .Net - PullRequest
0 голосов
/ 19 декабря 2011

У меня есть строка, которая зашифрована с использованием некоторых классов шифрования в Java (RSA / ECB / PKCS1Padding), и открытый ключ, которым мы обменялись заранее.

Я хочу расшифровать эту строку, используя наш закрытый ключ, и этокод, который у меня есть.

 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"

Что я делаю не так?

Ответы [ 2 ]

0 голосов
/ 19 декабря 2011

Это рабочий код.

 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));
0 голосов
/ 19 декабря 2011

Вызов Decrypt со вторым параметром, установленным на false. MSDN

... false для использования отступа PKCS # 1 v1.5.

...