Я использую сертификат, сгенерированный makecert, который имеет как закрытый, так и открытый ключ. Эта часть Java использует этот открытый ключ для шифрования данных и .net расшифровывает его.rsacryptoserviceprovider с использованием сертификатов x509 C#
Я пытаюсь расшифровать зашифрованную в 64-битной кодированной строке Java и получить плохие данные.
Чтобы узнать, все ли в порядке, конец I, я попытался зашифровать открытым ключом, а затем расшифровать с помощью частного сертификата с тем же сертификатом. Мой код выглядит так.
X509Certificate2 cert = GetCert(key, StoreName.My, StoreLocation.LocalMachine);
RSACryptoServiceProvider provider = (RSACryptoServiceProvider)cert.PrivateKey;
RSACryptoServiceProvider publicprovider = (RSACryptoServiceProvider)cert.PublicKey.Key;
if (cert.HasPrivateKey)
MessageBox.Show("Got private key");
byte[] encrypted = publicprovider.Encrypt(Encoding.UTF8.GetBytes(text), false);
byte[] decryptedBytes = provider.Decrypt(encrypted, false);
Даже здесь я получаю сообщение об ошибке. Я что-то упускаю?
Этот сертификат выглядит действительным как с открытым, так и с закрытым ключом.
Какая ошибка? и на какой линии? –
Исключение: Плохие данные .. Никакого внутреннего внутреннего исключения , когда byte [] decryptedBytes = поставщик.Decrypt (зашифрованный, ложный); называется – bkhanal