C# 加密类 Managed 与 Provider 区别

作者:freethy 发布于:2015-5-3 9:58 Sunday

在 System.Security.Cryptography 中,我们可以看到有许多类,有些类还很相似,比如:

    System.Security.Cryptography.SHA1
    System.Security.Cryptography.SHA1Managed
    System.Security.Cryptography.SHA1CryptoServiceProvider

这三个类有什么关系呢?

SHA1 是抽象类,SHA1Managed 和 SHA1CryptoServiceProvider 继承于 SHA1。

 

SHA1Managed 和 SHA1CryptoServiceProvider 有什么区别呢?

SHA1Managed 被写入了托管 .NET 语言(比如:C#、VB.NET);而 SHA1CryptoServiceProvider 是基于 Windows Crypto API 的,也就是说它是依赖于 Windows 中某个 DLL 的。据说后者性能要高些。

其他以 Managed 和 Provider 结尾的类也是上述道理。

Powered by emlog 苏ICP备11068260号-7