(さらに別の) post by Jeff Atwood 多かれ少なかれ、私たち人間の開発者は暗号化にあまり関与すべきではないと結論付けた後、私はどのライブラリを使用するのか疑問に思っています。を使用する必要があります。正当と思われるライブラリは、entlibと Bouncy Castle の2つだけですが、私には.NET暗号化APIよりも抽象化されているようには見えません。
私が疑問に思っているのは、シンプルで、広く信頼され、オープンで、十分に文書化された「暗号ライブラリのjQuery」があるかどうかだと思います。
編集:これは https://github.com/quozd/awesomeからの人気のある暗号ライブラリの包括的なリストです-dotnet/blob/master/README.md#cryptography :
元の答えは次のとおりです。
Bouncy Castleライブラリは確かに尊敬されている成熟した暗号化ライブラリですが、.NETフレームワークに組み込まれている素晴らしい暗号化関数の多くを使用することの何が問題になっていますか?
System.Security.Cryptography名前空間
私の経験では、これらの実装は堅実であり、多数のオプションを提供します(たとえば、通常は Crypto API 、 [〜#〜] cng [〜#〜] および各アルゴリズムのマネージド実装から選択)、そしてあなたはしかないので、「間違える」ことはありません。 ] using 実装。 use を誤って使用する可能性があることを少し心配している場合は、いつでも MSDN独自のサンプルコード に従うことができます。
あなたは「自分で暗号化ルーチンを実装しないでください」という格言を完全に誤解しています。これが意味することは、独自のRSA/DSA /暗号化アルゴリズムをロールバックしないことです。彼らが何をしているのかを知っている誰かによって書かれたものを使うべきではないという意味ではありません。実際、どちらかといえば、あなたと信頼できるアルゴリズムの間にレイヤーを追加することはあなたを傷つけることになり、その逆ではありません。
弾力がある城 かなり広く尊敬されているようです
EntLib Cryptographyブロックは、ほとんどの暗号化/ハッシュのニーズに適しています。