web-dev-qa-db-ja.com

推奨される.NET暗号化ライブラリ

(さらに別の) post by Jeff Atwood 多かれ少なかれ、私たち人間の開発者は暗号化にあまり関与すべきではないと結論付けた後、私はどのライブラリを使用するのか疑問に思っています。を使用する必要があります。正当と思われるライブラリは、entlibと Bouncy Castle の2つだけですが、私には.NET暗号化APIよりも抽象化されているようには見えません。

私が疑問に思っているのは、シンプルで、広く信頼され、オープンで、十分に文書化された「暗号ライブラリのjQuery」があるかどうかだと思います。

18
JeremyWeir

編集:これは https://github.com/quozd/awesomeからの人気のある暗号ライブラリの包括的なリストです-dotnet/blob/master/README.md#cryptography

  • BouncyCastle -.Net System.Security.Cryptographyとともに、CLRの暗号化アルゴリズムのリファレンス実装。
  • HashLib --HashLibは、これまでに見たほぼすべてのハッシュアルゴリズムのコレクションであり、ほぼすべてをサポートし、非常に使いやすいです。
  • libsodium-net --libsodium for.NET-安全な暗号化ライブラリ
  • Pkcs11Interop -暗号化ハードウェアへのアクセスを提供するアンマネージPKCS#11ライブラリ用のマネージ.NETラッパー
  • StreamCryptor -libsodiumとprotobufを使用したスト​​リームの暗号化と復号化
  • SecurityDriven.Inferno -.NET暗号化ライブラリ。専門的に監査されています。

元の答えは次のとおりです。


Bouncy Castleライブラリは確かに尊敬されている成熟した暗号化ライブラリですが、.NETフレームワークに組み込まれている素晴らしい暗号化関数の多くを使用することの何が問題になっていますか?

System.Security.Cryptography名前空間

私の経験では、これらの実装は堅実であり、多数のオプションを提供します(たとえば、通常は Crypto API[〜#〜] cng [〜#〜] および各アルゴリズムのマネージド実装から選択)、そしてあなたはしかないので、「間違える」ことはありません。 ] using 実装。 use を誤って使用する可能性があることを少し心配している場合は、いつでも MSDN独自のサンプルコード に従うことができます。

21
CraigTP

あなたは「自分で暗号化ルーチンを実装しないでください」という格言を完全に誤解しています。これが意味することは、独自のRSA/DSA /暗号化アルゴリズムをロールバックしないことです。彼らが何をしているのかを知っている誰かによって書かれたものを使うべきではないという意味ではありません。実際、どちらかといえば、あなたと信頼できるアルゴリズムの間にレイヤーを追加することはあなたを傷つけることになり、その逆ではありません。

8
Jon Grant

弾力がある城 かなり広く尊敬されているようです

6
Jon Galloway

EntLib Cryptographyブロックは、ほとんどの暗号化/ハッシュのニーズに適しています。

1
Dipen Bhikadya