解密单字节异或编码文件
Decipher sing-byte XOR encoded file
我有一个用单字节异或编码的二进制文件,我试图暴力破解文件并将生成的文件的哈希值与原始文件进行比较但找不到它,我用作者.
我写的代码
#!/usr/bin/env python3
def bin_xor(data, key):
for i in range(len(data)):
data[i] ^= key
return data
data = bytearray(open('sample', 'rb').read())
for key in range(0x00,0xff):
decoded = bin_xor(data, key)
name = str(key) + '.bin'
open(name, "wb").write(decoded)
它会生成 255 个 .bin 文件然后我比较文件的哈希值但没有找到它。
通过在 range
中使用 0xff
的停止值,您实际上错过了 0xff
本身。
For a positive step, the contents of a range r are determined by the
formula r[i] = start + step*i where i >= 0 and r[i] < stop.
您应该使用 0x100
作为停止值。
for key in range(0x00,0x100):
我有一个用单字节异或编码的二进制文件,我试图暴力破解文件并将生成的文件的哈希值与原始文件进行比较但找不到它,我用作者.
我写的代码
#!/usr/bin/env python3
def bin_xor(data, key):
for i in range(len(data)):
data[i] ^= key
return data
data = bytearray(open('sample', 'rb').read())
for key in range(0x00,0xff):
decoded = bin_xor(data, key)
name = str(key) + '.bin'
open(name, "wb").write(decoded)
它会生成 255 个 .bin 文件然后我比较文件的哈希值但没有找到它。
通过在 range
中使用 0xff
的停止值,您实际上错过了 0xff
本身。
For a positive step, the contents of a range r are determined by the formula r[i] = start + step*i where i >= 0 and r[i] < stop.
您应该使用 0x100
作为停止值。
for key in range(0x00,0x100):