2008-10-22 4 views
7

Wie von MSDN dokumentiert, gibt es mehrere Anbieter für viele der verschiedenen Hash-Algorithmen (z. B. MD5, SHA, RIPE). Für jeden der Algorithmen, scheint jede verfügbare Implementierung in 1 von 3 Kategorien zu fallen:Warum gibt es in System.Security.Cryptography mehrere verschiedene Hashalgorithmen?

  • [Algo] Cng
  • [Algo] Cryptoserviceprovider
  • [Algo] Managed

Warum gibt es mehrere Implementierungen eines dieser Hashalgorithmen?

Was sind die Unterschiede zwischen den Implementierungen?

Welche praktischen Unterschiede bestehen bei der Auswahl der Implementierung in einer Anwendung?

Referenzen:

http://msdn.microsoft.com/en-us/library/system.security.cryptography.aspx

+0

möglich Duplikat [CNG, Cryptoserviceprovider und Managed-Implementierungen von HashAlgorithm] (http://stackoverflow.com/questions/211169/cng-cryptoserviceprovider-and-managed-implementations-of-hashalgorithmus) – CodesInChaos

Antwort

11
  • [Algo]Managed ist eine reine IL-Implementierung des Algorithmus.
  • [Algo]CryptoServiceProvider Delegaten an CAPI, mit denen Sie Dinge wie Hardware-Krypto-Geräte verwenden können.
  • [Algo]Cng verwendet Cryptography API: Next Generation (CNG), die ein Ersatz für CAPI ausgelegt sein, sondern wird nur in Vista und Server 2008.
  • unterstützt
+0

Ahh, wir sind so nah. Danke für die Antwort auf die Fragen 1 und 2. Gibt es eine Chance, dass Sie oder jemand anders die Antwort auf die dritte Frage (meine Hauptsorge) weiß, besonders wenn CryptoServiceProvider und Managed beide verfügbar sind? –

+0

Das ist faszinierend! Gute Antwort. – ine

+0

Man könnte meinen, dass verwalteter Code langsamer ist als systemeigener Code, insbesondere bei Krypto-Code, und sogar noch mehr, wenn Sie ein Hardwaregerät haben. –

Verwandte Themen