estoy usando un certificado generado por makecert que tiene clave privada y pública. El lado java usa esta clave pública para encriptar los datos y .net la descifra.rsacryptoserviceprovider usando certificados x509 C#
Estoy tratando de descifrar la cadena codificada de 64 bits cifrada de Java y obtener datos incorrectos.
Para ver si todo está bien en.Net end, intenté encriptar con la clave pública y luego descifrar con privado usando el mismo certificado. Mi código se ve así.
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);
Incluso aquí me aparece el error. ¿Me estoy perdiendo de algo?
El certificado parece válido con clave pública y privada.
¿Qué error? y en qué línea? –
Excepción: Datos incorrectos. Sin excepción interna cuando byte [] decryptedBytes = provider.Decrypt (encrypted, false); se llama – bkhanal