2

私はデータの暗号化に使用していますが、それを使用してデータを復号化すると、データが一連の文字TripleDESCryptoServiceProviderで終わる場合があることに気付きました。'\0'したがって、これ"Sachin"の暗号化されたバージョンを暗号化してから復号化すると、元に戻り"Sachin\0\0"ます。これは問題ですか?

4

1 に答える 1

3

おそらく、暗号化方式でパディングが追加されています。この場合はゼロパディングです。復号化メソッドはパディングを想定していないため、元の平文の一部であるかのように復号化するだけです。

DESはブロック暗号であり、64ビット(8バイト)ブロックのデータでのみ機能します。平文は次のブロック境界に埋め込まれます。

プレーンテキストが(Cスタイルの文字列のように)ゼロバイトで終わると問題が発生するため、ゼロパディングは適切ではありません。暗号化方法を変更してPKCS#5パディングを追加し、復号化方法を変更して同じことを期待します。その後、パディングは自動的に削除され、表示されることはありません。

于 2012-05-22T14:47:21.290 に答える