我試圖用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<'
有人能解釋爲什麼會發生這種情況嗎?
這是*正常*。在可能的情況下,Python字節對象將顯示可打印的ASCII字符,而不是使用'\ xhh'轉義序列。 *這裏沒有數據丟失*,你只是看着調試輸出傾向於可讀的文本。 –
例如,7E字節是ASCII標準中的'〜'字符,因爲這是一個可打印字符,所以'repr()'輸出使用'〜'而不是'\ x7E'。當您的數據主要是文本時,這非常有用,因爲您不必手動將字節轉換爲ASCII。 –
@MartijnPieters,我明白了,謝謝!那麼這是否意味着如果我使用7E或〜輸入密鑰給我的密碼,它會給我相同的輸出? –