Итак, мне было интересно, существуют ли какие-либо существенные различия между различными реализациями хэш-алгоритмов, например, возьмите серию алгоритмов SHA. Все они имеют по 3 реализации каждый, 1 в управляемом коде и 2 обертки вокруг разных API-интерфейсов crypto, но есть ли какие-либо существенные различия между использованием любого из них? Я могу представить, что версии обертки могут иметь более высокую производительность с момента ее выполнения в собственном коде, но все же нужно выполнять точные вычисления и, таким образом, обеспечивать тот же результат, т.е. Они взаимозаменяемы. Правильно ли это?
Например, SHA512CNG не может использоваться на XP SP2 (документы ошибочны), но SHA512MANAGED может.
@Maxim - Спасибо, но не совсем то, о чем я просил. Я спрашивал, есть ли какая-либо разница, отличная от производительности, от использования реализаций Managed/CryptoServiceProvider/CNG данного хеш-алгоритма. С .NET 3.5 вы получаете все хэш-алгоритмы с тремя реализациями, поэтому
SHA512Managed SHA512CryptoServiceProvider SHA512Cng
Последние два являются обертками вокруг собственных API. Это справедливо для всех реализаций SHAxxx, например.