Ich versuche, Dateien mit asymmetrischer Verschlüsselung zu verschlüsseln und dann zu entschlüsseln. Ich habe mit makecert ein Testzertifikat erstellt und es in meinen persönlichen localmachine Store installiert. In Zukunft muss ich dieses Zertifikat auf mehreren Servern installieren, deshalb habe ich es mit "-pe" -Flag erstellt, das heißt, mit exportierbaren privaten Schlüssel. Die Zertifikate wurden erfolgreich erstellt und installiert. Ich sehe den Hinweis "Sie haben einen privaten Schlüssel, der diesem Zertifikat entspricht" in mmc."Ungültiger Schlüssel" Ausnahme für Zertifikate mit exportierbaren privaten Schlüssel
Jetzt versuche ich Daten mit RSACryptoServiceProvider in .NET 3.5 zu verschlüsseln. Und es gelingt. Aber wenn ich versuche, es zu entschlüsseln, bekomme ich eine "Bad Key" -Ausnahme.
Wenn ich das Zertifikat ohne "-pe" -Option erstellen, funktioniert der gleiche Code gut für die Entschlüsselung. Hier ist der Code:
RSA rsaKey = (RSA)myCertificate.PrivateKey;
RSACryptoServiceProvider rsaCsp = (RSACryptoServiceProvider)rsaKey;
byte[] plainText = rsaCsp.Decrypt(encryptedText, true);
Auch habe ich eine andere Methode versucht, System.Security.Cryptography.Pkcs Namespace:
EnvelopedCms envelope = new EnvelopedCms();
envelope.Decode(encryptedText);
envelope.Decrypt();
byte[] plainText = envelope.ContentInfo.Content;
Das Ergebnis war das gleiche ... Kann mir jemand helfen ?
Danke Herr, genau das, was mir gefehlt hat – KodeKreachor
Das hat den Tag gerettet .. danke für die Antwort UND die Erklärung. – granadaCoder