7

会社のプロジェクトで PKI ライブラリを C# で実装する任務を負っていますが、適切な実装を見つけることができませんでした。複数のライブラリがあり、削除された MSDN ライブラリへのリンクが壊れているようです。Crypt32.dll を使用している人、独自のライブラリを作成している人、P/Invoke を使用してシステム証明書ストアにアクセスしている人、組み込みライブラリを拡張している人、C# にはまったく当てはまらない例 (Java の例など)、および商用ライブラリ。

私の質問は、データの単純な暗号化/復号化に最も推奨される実装/ライブラリはどれですか?

私が計画していることの背景として、秘密鍵 (.pfx) を使用してメッセージを暗号化し、公開鍵 (.cer) を使用して復号化する必要があるだけです。プロジェクトのこのレベルでは、メッセージの署名と認証は必要ありませんが、将来的には必要になる可能性があります。暗号化の長さについて言及されているのを見て不安になりました。任意の長さのメッセージを暗号化できる必要があります (もちろん、当然のことです!)。これは私が心配する必要があるものですか? もしそうなら、それに対処する方法はありますか?

可能であれば、Windows証明書マネージャーに公開/秘密鍵を保存したくないのですが、実装が大幅に簡単になる場合は、そうしてください。

PKI と暗号化は大規模で複雑なテーマであることは理解していますが、とにかく比較的単純なライブラリを望んでいます... (期待できますよね?)

ありがとう!

4

2 に答える 2

12

さて、組み込みクラスがニーズをカバーしていないことについて言及していませんでし

ストリームを非対称に暗号化/復号化するための多数の認定された方法があります。

途中であなたを連れて行くためのいくつかのチュートリアル/ガイドがあります:

Googleで見つけられるものは他にも無数にあります。

更新:長さ制限については、暗号化と復号化の両側で同じバッファアルゴリズムを実装するだけであれば問題ありません。

Update2 : はい、私の例はRSACryptoProvider でしたが、公開/秘密鍵ソリューションが必要な場合は、 System.Security.Cryptography.AsymmetricAlgorithmから派生した任意のクラスを使用できます。または、独自のビルド...またはそうでないかもしれません:)

于 2008-09-23T10:01:11.817 に答える
0

はい、組み込みクラスの何が問題になっていますか?

また、Windows証明書ストアを使用したくない場合は、次のようなものを使用できます。

RSACryptoServiceProvider rscp = new RSACryptoServiceProvider();
rscp.FromXmlString("<RSAKeyValue><Modulus>key data gere</Modulus><Exponent></Exponent></RSAKeyValue>");

ただし、これが秘密鍵に適しているかどうかはわかりません。

ここに主題に関する良いチュートリアルがあります

于 2008-09-23T10:27:34.797 に答える