Sto utilizzando un certificato generato da makecert che ha sia la chiave privata che pubblica. Il lato java utilizza questa chiave pubblica per crittografare i dati e .net decodifica di nuovo.rsacryptoserviceprovider utilizzando certificati x509 C#
Sto tentando di decifrare la stringa codificata a 64 bit crittografata di Java e ottenere dati non validi.
Per vedere se tutto va bene su End.Net, ho provato a crittografare con la chiave pubblica e quindi decifrare con privato utilizzando lo stesso certificato. Il mio codice è simile a questo.
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);
Anche qui ho ricevuto l'errore. Mi sto perdendo qualcosa?
Il certificato sembra valido sia con chiave pubblica che privata.
Che errore? e su quale linea? –
Eccezione: dati non validi .. Nessuna ulteriore eccezione interna quando byte [] decrittografatoBytes = provider.Decrypt (crittografato, falso); si chiama – bkhanal