私は、AES暗号でPythonを使って画像ファイルを復号しようとしています。私たちは15バイトのキーを与えられています。最初のバイトで実行されているイメージを解読するのは私たちの仕事です。Python - 文字列中の文字列を切り捨てて文字列を文字列に連結する
と私はこれまで持っていることは次のとおりです。
fifteenbytes = b'\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c'
for i in range(0, 256):
ipack = pack('B', i)
key = ipack + fifteenbytes
私は私のようなものとしてキーを取得することだろう期待していた
:
\x00\x7e\x15\x16\x28\xae\xd2\xa6\xab\xf7\x15\x88\x09\xcf\x4f\x3c
の反復0のため
から255が、私はで終わります:
b'\x00~\x15\x16(\xae\xd2\xa6\xab\xf7\x15\x88\t\xcfO<'
時には終了文字などASCII値:
b'\t~\x15\x16(\xae\xd2\xa6\xab\xf7\x15\x88\t\xcfO<'
b'%~\x15\x16(\xae\xd2\xa6\xab\xf7\x15\x88\t\xcfO<'
なぜこのようなことが起こるのか説明してもらえますか?
これは*ノーマル*です。 '\ xhh'エスケープシーケンスを使用するのではなく、可能であれば、Pythonバイトオブジェクトが表示可能なASCII文字で表示されます。 *ここでデータが失われることはありません。*読みやすいテキストに歪んだデバッグ出力を見ているだけです。 –
例えば、7EバイトはASCII標準の '〜'文字であり、それは印刷可能な文字であるため、 'repr()'出力は '\ x7E'ではなく'〜 'を使います。これは、データをASCIIテキストに変換し続ける必要がないため、データが主にテキストの場合に役立ちます。 –
@MartijnPieters、ありがとう、ありがとう!つまり、7Eまたは〜を使用して暗号にキーを入力すると、同じ出力が得られますか? –