使用ASP.NET Core计算SHA1

时间:2016-02-12 13:03:36

标签: .net asp.net-core sha1 .net-core

我有一个ASP.NET 5 RC1(很快将成为ASP.NET Core)Web应用程序项目。

需要计算SHA1哈希值。

各种SHA1子类可用并在DNX 4.5.1下构建,但似乎并不是DNX Core 5.0下的任何可用实现。

我是否必须添加引用以引入该代码,或者它是否仅适用于.NET Core?

根据this article

  

.NET Core由一组名为“CoreFX”的库和一个名为“CoreCLR”的小型优化运行时组成。

果然,在CoreFX repo中,没有SHA1的子类:

https://github.com/dotnet/corefx/tree/master/src/System.Security.Cryptography.Algorithms/src/System/Security/Cryptography

但是在CoreCLR中,子类就像你期望的那样,在mscorlib中:

https://github.com/dotnet/coreclr/tree/43b39a73cbf832ec13ec29ed356cb75834e7a8d7/src/mscorlib/src/System/Security/Cryptography

为什么coreclr和corefx之间存在重叠?这个mscorlib代码不适用于.NET Core项目吗?

System.Security.Crytpography.Algorithms package on NuGet的说明:

  

提供加密算法的基本类型,包括散列,加密和签名操作。

是否有其他包包含实际算法而不仅仅是基类?这件事还没有移植过吗?您是否可以在某处查看API的状态和路线图,就像Mono一样?

1 个答案:

答案 0 :(得分:29)

添加System.Security.Cryptography.Algorithms nuget包。

然后

var sha1 = System.Security.Cryptography.SHA1.Create();

var hash = sha1.ComputeHash(myByteArray)