试图做一个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)'。 –