Frage

Ich habe mit der Implementierung einer PKI-Bibliothek in C # für ein Unternehmen, Projekt beauftragt, und haben es nicht gelungen, eine gute Umsetzung zu finden. Es erscheinen mehrere Bibliotheken und viele defekte Links sein Hinweis auf MSDN-Bibliotheken, die entfernt wurden. Ich habe Leute Crypt32.dll mit gesehen, die Menschen ihre eigenen Bibliotheken bauen, Menschen mit P / Invoke Systemzertifikatspeicher zugreifen zu können, erstreckt Menschen die integrierten Bibliotheken, Beispiele, die einfach gelten nicht für C # (zB Java Beispiele), und kommerzielle Bibliotheken.

Meine Frage ist, welche Implementierung / Bibliothek am meisten für die einfache Verschlüsselung / Entschlüsselung von Daten zu empfehlen?

Wie einige Hintergrundinformationen für das, was ich plane, mit ihm zu tun, muß ich einfach zum Verschlüsseln von Nachrichten über einen privaten Schlüssel (PFX) verwendet wird, und Entschlüsseln mit öffentlichen Schlüsseln (cer). Nachrichtensignierung und Authentifizierung nicht auf dieser Ebene des Projektes erforderlich, obwohl es in Zukunft sein kann. Ich habe Bezug auf Verschlüsselungslängen gesehen, die mich beunruhigen. Wir müssen in der Lage, jede Länge Nachricht zu verschlüsseln (innerhalb Grund, natürlich!). Ist das etwas, was ich kümmern müssen, und wenn ja, ist es eine Möglichkeit, um damit umzugehen?

Ich würde es vorziehen, nicht öffentliche / private Schlüssel in der Windows-Zertifikatsmanager zu speichern, wenn überhaupt möglich ist, aber wenn es Implementierung macht deutlich einfacher, so sei es.

Ich weiß, PKI und Verschlüsselung ein großes und komplexes Thema ist, aber ich bin für eine relativ einfache Bibliothek der Hoffnung, irgendwie ... (man kann hoffen, nicht wahr?)

Danke!

War es hilfreich?

Lösung

Nun, Sie nicht erwähnt, dass die eingebaute Klasse nicht Ihren Bedarf decken, so wie etwa System.Security.Cryptography.RSACryptoServiceProvider ?

Es hat sich eine große Menge Möglichkeiten qualifiziert asymmetrisch Verschlüsseln / Entschlüsseln von Streams.

Es gibt mehrere tutorial / führt Sie auf dem Weg zu nehmen:

http://www.codeproject.com/KB/security/RSACryptoPad.aspx

http://www.eggheadcafe.com/articles/20020630.asp

Es gibt unzählige mehr gefunden werden durch Google .

Aktualisieren : über die Länge restrictments, sollte es keine Probleme geben, wenn Sie nur den gleichen Puffer-Algorithmus, der auf beiden Seiten, die Verschlüsselung und Entschlüsselung implementieren

.

Update2 : Ja, mein Beispiel war RSACryptoProvider , aber Sie können jede Klasse, die von System.Security.Cryptography.AsymmetricAlgorithm , wenn Sie einen öffentlichen / privaten Schlüssel wollen -Lösung. Oder bauen Sie Ihre eigenen ... oder vielleicht auch nicht:)

Andere Tipps

Ja, was ist los mit integrierten Klassen?

Und wenn Sie wollen nicht Windows-Zertifikatspeicher verwenden, können Sie so etwas wie dieses verwenden

RSACryptoServiceProvider rscp = new RSACryptoServiceProvider();
rscp.FromXmlString("<RSAKeyValue><Modulus>key data gere</Modulus><Exponent></Exponent></RSAKeyValue>");

Nicht sicher, dass dies eine gute Idee für private Schlüssel ist, though.

Es gibt ein gutes Tutorial zum Thema hier

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top