2

Java と C#.NET の両方で一般的な AES 暗号化のパディング モードを知りたい

ありがとうバピ

4

3 に答える 3

1

なし、PKCS7、ゼロ

Dotnet は、すべての JCE プロバイダーと同様に、これら 3 つをサポートしています。

java<->.net AES を探しているなら、Bouncy Castle をお勧めします。どちらも無料のライブラリがあります。

http://www.bouncycastle.org/

于 2009-05-07T13:59:31.837 に答える
0

私はクラスのプロジェクトに取り組んでいて、難しい方法でいくつかの詳細を見つけました。まず、Java はそのままで、別の名前で PKCS7 パディングをサポートします。PKCS5 と呼ばれます。一部のプログラマーは、Java は PKCS7 をサポートしていないが、別の (古い) パディング タイプをサポートしているという誤った考えのために、Bouncy Castle を使用しています。これは、Bouncy Castle にひどいバグがあることが判明したことを除けば、それほど重要ではありません。私のプロジェクトは、AES の実装に依存していました。単一の doFinal ですべてのデータを一度に暗号化する場合は機能しますが、ブロックの暗号化はひどく失敗し、データを渡すために使用されるバッファー サイズによって結果が変わることさえあります。Sun の実装に戻すと、同じコードで正しい結果が得られました。言うまでもなく、そのために数日間のデバッグが必要でした。

于 2009-05-14T07:53:54.597 に答える
0

いくつかのパディング アルゴリズムがWikipediaで概説されています。いくつかの重要なアプリケーション (たとえば、Oracle クライアント) で PKCS7 が使用されているのを見てきました。実装は非常に簡単なので、どちらかのプラットフォームがすぐにサポートしていなくても心配する必要はありません。

于 2009-05-07T13:56:28.087 に答える