QuoteOriginally posted by: outrunQuoteOriginally posted by: CuchulainnFound thisQuoteMain difference between SHA1, SHA1CryptoServiceProvider, SHA1Managed and SHA1Cng are:1) SHA1: this is abstract class. All other implementation of SHA1 (SHA1CryptoServiceProvider, SHA1Managed and SHA1Cng) implements this abstract class. To create concreate SHA1 class, use SHA1.Create(). By default SHA1.Create() returns SHA1CryptoServiceProvider, which is configurable.To configure default SHA1 implementation: http://msdn.microsoft.com/en-us/library/693aff9y.aspx2
) SHA1CryptoServiceProvider: this is wrapper for unmanaged CryptoAPI(CAPI). This is Federal Information Processing Standard (FIPS) certified.3) SHA1Managed: this is complete implementation of SHA1 using managed code. This is fully managed but not FIPS certified and may be slower.4) SHA1Cng: this is wrapper for unmanaged Cryptography Next Generation (CNG). These are newer implementation of cryptographic algorithms by Microsoft with Windows 2008/Windows Vista or newer. This is also FIPS certified. That's a IMO too much terminology and wrappers for a realy simple function. You know I'm not a big fan of verbose OO design structures.But I'm not experienced .NET, it looks like it all has to do mainly with managed/unmanaged versions?Yes, it's overkill. But .NET has to talk to native by a wrapper unless it's in C# which would be too slow.