試圖做一個MD5碰撞作業問題,我不知道如何在Python中編寫原始字節。我給了它一個鏡頭,但最後只有一個帶有ASCII的.bin文件。這是我的代碼:如何將ASCII字節的文件寫入二進制文件作爲實際字節?
fileWriteObject1 = open("md5One.bin", 'wb')
fileWriteObject2 = open("md5Two.bin", 'wb')
fileReadObject1 = open('bytes1.txt', 'r')
fileReadObject2 = open('bytes2.txt', 'r')
bytes1Contents = fileReadObject1.readlines()
bytes2Contents = fileReadObject2.readlines()
fileReadObject1.close()
fileReadObject2.close()
for bytes in bytes1Contents:
toWrite = r"\x" + bytes
fileWriteObject1.write(toWrite.strip())
for bytes in bytes2Contents:
toWrite = r"\x" + bytes
fileWriteObject2.write((toWrite.strip())
fileWriteObject1.close()
fileWriteObject2.close()
樣本輸入: D1 DD C5 E6 EE C4 3D 9A AF F9 5C 2F CA b5
我有一個鏈接到我的輸入文件,但它似乎是一個國防部刪除它。這是一個在每行上都有一個用ASCII字符寫的十六進制字節的文件。
編輯:求助!感謝Circumflex。
我有兩個不同的文本文件,每個都有128字節的ASCII。我將它們轉換爲二進制文件,並使用struck.pack編寫並獲得了MD5衝突。
什麼是您的輸入實際上是什麼樣子? (技術上沒有「ASCII字節」這樣的東西,但是有很多方法可以用ASCII字符來表示任意字節,你應該指定你在說什麼) –
我有一個鏈接到我的輸入文件,但它似乎是一個mod刪除它。這是一個在每行上都有一個用ASCII字符寫的十六進制字節的文件。 – anon58192932
因此,您需要將每對字符轉換爲一個字節,然後將其寫入文件。要開始,請嘗試'int(「d1」,base = 16)'。 –