CNG, CryptoServiceProvider i Managed implementacje HashAlgorithm

Zastanawiałem się więc, czy istnieją jakieś znaczne różnice między różnymi implementacjami algorytmów mieszania, na przykład seria algorytmów SHA. Wszystkie mają po 3 implementacje, 1 w kodzie zarządzanym i 2 opakowania po różnych rodzimych interfejsach API kryptograficznych, ale czy są jakieś poważne różnice między używaniem któregokolwiek z nich? Mogę sobie wyobrazić, że wersje wrapperów mogą mieć wyższą wydajność, ponieważ są wykonywane w natywnym kodzie, ale wszyscy muszą wykonywać dokładnie te same obliczenia, a tym samym dostarczać te same dane wyjściowe, tj. Są one wymienne. Czy to jest poprawne?

Na przykład SHA512CNG nie może być używany na XP SP2 (dokumenty są błędne), ale SHA512MANAGED może.

@ Maxim - Dziękuję, ale nie do końca to, o co prosiłem. Pytałem, czy istnieje jakakolwiek różnica, poza możliwą wydajnością, z wykorzystaniem implementacji Managed / CryptoServiceProvider / CNG danego algorytmu mieszania. Z .NET 3.5 otrzymujesz wszystkie algorytmy mieszania z trzema implementacjami, więc

SHA512Managed SHA512CryptoServiceProvider SHA512Cng

Te dwa ostatnie są opakowaniami wokół natywnych API. Dotyczy to na przykład wszystkich implementacji SHAxxx.

questionAnswers(4)

yourAnswerToTheQuestion