【问题标题】:Computing SHA1 with ASP.NET Core使用 ASP.NET Core 计算 SHA1
【发布时间】:2016-05-23 15:32:14
【问题描述】:

我有一个 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 的描述说:

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

是否有另一个包包含实际算法而不仅仅是基类?这是尚未移植的东西吗?有没有地方可以像 Mono 一样查看 API 的状态和路线图?

【问题讨论】:

  • CoreCLR 是核心运行时,而 CoreFX 是库。如果 SHA1 是 runtime 本身的一部分,您应该可以使用它。您是否尝试过通过工厂方法创建算法的实现?
  • @PanagiotisKanavos,呵呵,完全错过了工厂方法(尽管链接到它)。这样,我的代码就可以编译了。如果您想将其发布为答案,我会接受。

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


【解决方案1】:

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

然后

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

var hash = sha1.ComputeHash(myByteArray)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-14
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    相关资源
    最近更新 更多