为什么System.Security.Cryptography中有多个不同的哈希算法提供程序?

Zac*_*ame 8 .net hash cryptography

正如MSDN所记录的那样,许多不同的散列算法(例如MD5,SHA,RIPE)都有几个提供者.对于每种算法,任何可用的实现似乎都属于以下三类:

  • [Algo] Cng
  • [Algo] CryptoServiceProvider
  • [Algo] 管理

为什么有任何这些哈希算法的多个实现?

这些实现之间有什么区别?

选择在应用程序中使用哪种实现时有哪些实际差异?

参考文献:

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

Ign*_*ams 12

  • [Algo]Managed 是算法的纯IL实现.
  • [Algo]CryptoServiceProvider 代表CAPI,它允许您使用硬件加密设备之类的东西.
  • [Algo]Cng 使用Cryptography API:Next Generation(CNG),旨在替代CAPI,但仅在Vista和Server 2008中受支持.