1

整数を DES で暗号化したいのですが、結果の暗号文も整数である必要があります。

復号化関数もこの概念に従う必要があります。

Base64エンコーディングを使用する代わりに、バイト配列を整数に変換することにより、DES で文字列を暗号化するでコードを変更しようとしています。ただし、integer を byte[] に変換すると 4 バイト配列になるため、復号化関数は不適切なパディングの例外をスローします。

これを達成するために使用できる他の暗号化アルゴリズムはありますか?

  • 暗号文の弱点は気にならない。
4

3 に答える 3

2

別の整数値を生成するために DES を介して整数値を実行していて、暗号テキストの弱点を気にしない場合は、非常にコストのかかるハッシュ操作を行っているだけです。キーとしてランダムな整数を生成し、指数とランダムな整数をビット単位で xor する方がよいでしょう。これは、計算にナノ秒かかり、まったく同じセキュリティを備えています。

于 2011-08-05T18:39:01.430 に答える
1

FormatPerservingEncryptionを確認します。これにはいくつかの手法がありますが、一般に、それらはすべて、入力と同じドメインで値を生成します(つまり、整数、クレジットカード番号など)。

于 2011-10-14T03:20:49.897 に答える
1

DESのブロックサイズは64ビットであるため、通常、32ビットの暗号化からの出力はint64ビットブロックになります。long64ビットを別の64ビットに暗号化する方が簡単ですlong。パディングが問題にならないようにECBモードを使用するか、少なくとも前面にゼロビットを追加intして64ビットに拡張します。

あなたが単にあなたを打ちのめしたいのであればint、ジムの提案は素晴らしいです。

于 2011-08-05T20:11:24.940 に答える