PyCrypto Python ライブラリを使用して、.jpg 画像ファイルをパスワードで暗号化しようとしています。しかし、ファイルを復号化して開くと、虹のように見えるだけで、元の画像はぼんやりと見えますが、それとはまったく異なります。どこで品質が失われているのだろうと思っていましたか?私の推測では、ファイルをパディングするとき (DES が必要とする長さが 8 の倍数になるように)、「{」文字を使用してパディングし、ファイルを復号化するときは、decryptedFileText を使用します。 .replace('{','') は、パッド文字を削除するためのものですが、同時に、画質に重要な他の '{' 文字を削除している可能性があります。これを回避できるファイルをパディングする方法を誰かが知っているのか、それとも問題を完全に見逃しているのか疑問に思っていました。
1 に答える
1
ファイルをパディングするときは、パディング文字がファイルの最後のバイトと同じでないことを確認してください。パディングを削除するときは、ファイルの末尾から同じ値を持つバイトを最大 8 つ連続して削除します。元のファイルの長さが 8 の倍数の場合、ファイルの最終的な値とは異なる 8 パッド バイトを追加します。
この方法でファイルをパディングする場合は、ファイル全体に作用する replace() を使用せず、decryptedFileText = decryptedFileText.rstrip(decryptedFileText[-1])
.
于 2013-08-13T18:37:15.670 に答える