有一个代码:
import os
key = [0xA3, 0xBD, 0xAD, 0x0D, 0x41, 0x11, 0xBB, 0x8D, 0xDC, 0x80, 0x2D, 0xD0, 0xD2, 0xC4, 0x9B, 0x1E, 0x26, 0xEB, 0xE3, 0x33, 0x4A, 0x15, 0xE4, 0x0A, 0xB3, 0xB1, 0x3C, 0x93, 0xBB, 0xAF, 0xF7, 0x3E]
fi = open("1.bin", "rb")
fo = open("1e .bin", "wb")
length = os.path.getsize("1.bin")
position = 0
try:
while position < length:
byte = fi.read(1)
if position >= 320 and position < 31040:
byte = chr(ord(byte) ^ key[position & 31])
fo.write(byte)
position += 1
finally:
fi.close()
fo.close()
给出错误消息:
TypeError: a bytes-like object is required, not 'str'
但正如您所见,我们读取一个字节,通过 XOR 对其进行加密,然后尝试将其写入另一个文件……
有什么问题以及如何解决?
谢谢
您需要将加密字符转换为字节。
或者你可以缩短它:
UPD:我也会更改
while为for: