2016-02-12 12 views
8

私はASP.NET 5 RC1(間もなくASP.NETコア)Webアプリケーションプロジェクトを持っています。ASP.NETコアでSHA1を計算する

SHA1ハッシュを計算する必要があります。

様々なSHA1サブクラスが利用可能であり、DNX 4.5.1で構築されていますが、DNX Core 5.0では利用可能な実装がないようです。

このコードを使用するための参照を追加する必要がありますか。それとも.NETコアではまだ利用できませんか? this articleによると

.NETのコアは「CoreFX」と呼ばれるライブラリのセット、および「CoreCLR」と呼ばれる小さな、最適化されたランタイム、から構成されています。

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

しかしCoreCLRにサブクラスはあなたが期待通りがある

mscorlib内、::案の定

、CoreFXレポで、SHA1のないサブクラスはありません

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

なぜcoreclrとcorefxが重複していますか?このmscorlibコードは.NETコアプロジェクトで使用できませんか?

System.Security.Crytpography.Algorithms package on NuGetの説明は言う:

はハッシュ、暗号化、および署名の操作を含む暗号化アルゴリズムのための基本型を、提供します。

基本クラスだけでなく、実際のアルゴリズムを含む別のパッケージがありますか?まだ移植されていないものですか? Monoのように、APIのステータスとロードマップを確認できる場所はありますか?

+1

CoreCLRは、コアランタイムです。 SHA1が*ランタイム*の一部である場合、それを使用できるはずです。あなたは、ファクトリメソッドを通してアルゴリズムの実装を作成しようとしましたか? –

+0

@PanagiotisKanavos、heheは、(それにリンクしているにもかかわらず)ファクトリメソッドを完全に見逃していました。これで、私のコードがコンパイルされます。それを回答として投稿したい場合は、私はそれを受け入れます。 –

答えて

25

System.Security.Cryptography.Algorithmsナゲットパッケージを追加してください。 CoreFXはライブラリですしながら

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

var hash = sha1.ComputeHash(myByteArray)