私はデータの暗号化に使用していますが、それを使用してデータを復号化すると、データが一連の文字TripleDESCryptoServiceProvider
で終わる場合があることに気付きました。'\0'
したがって、これ"Sachin"
の暗号化されたバージョンを暗号化してから復号化すると、元に戻り"Sachin\0\0"
ます。これは問題ですか?
質問する
259 次
1 に答える
3
おそらく、暗号化方式でパディングが追加されています。この場合はゼロパディングです。復号化メソッドはパディングを想定していないため、元の平文の一部であるかのように復号化するだけです。
DESはブロック暗号であり、64ビット(8バイト)ブロックのデータでのみ機能します。平文は次のブロック境界に埋め込まれます。
プレーンテキストが(Cスタイルの文字列のように)ゼロバイトで終わると問題が発生するため、ゼロパディングは適切ではありません。暗号化方法を変更してPKCS#5パディングを追加し、復号化方法を変更して同じことを期待します。その後、パディングは自動的に削除され、表示されることはありません。
于 2012-05-22T14:47:21.290 に答える