As documented by the MSDN here, there are several providers for many of the different hashing algorithms (e.g. MD5, SHA, RIPE). For each of the algorithms, any available implementation seems to fall into 1 of 3 categories:
- [Algo]Cng
- [Algo]CryptoServiceProvider
- [Algo]Managed
Why are there multiple implementations of any of these hashing algorithms?
What are the differences between the implementations?
What are the practical differences when choosing which implementation to utilize in an application?
References:
http://msdn.microsoft.com/en-us/library/system.security.cryptography.aspx