2008-10-22 11 views
7

Jak dokumentuje MSDN, istnieje kilka dostawców dla wielu różnych algorytmów mieszających (na przykład MD5, SHA, RIPE). Dla każdego z tych algorytmów, wszelkie dostępne realizacja wydaje się spadać do 1 trzy kategorie:Dlaczego w System.Security.Cryptography jest wielu różnych dostawców algorytmów mieszających?

  • [Algo] CNG
  • [Algo] CryptoServiceProvider
  • [Algo] zarządzane

Dlaczego istnieje wiele implementacji któregokolwiek z tych algorytmów mieszających?

Jakie są różnice między implementacjami?

Jakie są praktyczne różnice przy wyborze wersji do wykorzystania w aplikacji?

Odniesienia:

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

+0

możliwe duplikat [CNG, CryptoServiceProvider i udało implementacje HashAlgorithm] (http://stackoverflow.com/questions/211169/cng-cryptoserviceprovider-and-managed-implementations-hashalgorithm) – CodesInChaos

Odpowiedz

11
  • [Algo]Managed jest realizacja czystego IL algorytmu.
  • [Algo]CryptoServiceProvider deleguje do CAPI, co pozwala używać takich rzeczy, jak sprzętowe urządzenia kryptograficzne.
  • [Algo]Cng używa kryptograficznego API: Next Generation (CNG), która ma być zamiennikiem dla CAPI ale jest obsługiwana tylko w Vista i Server 2008.
+0

Ahh, jesteśmy tak blisko. Dziękuję za odpowiedź na pytania 1 i 2. Czy masz szansę, że ty lub ktokolwiek inny zna odpowiedź na trzecie pytanie (mój główny problem), szczególnie gdy dostępne są CryptoServiceProvider i Managed? –

+0

To fascynujące! Świetna odpowiedź. – ine

+0

Można by sądzić, że kod zarządzany będzie wolniejszy niż kod natywny, szczególnie w przypadku kodu kryptograficznego, a nawet więcej, jeśli masz urządzenie sprzętowe. –

Powiązane problemy