解密单字节异或编码文件

时间:2018-07-26 09:50:44

标签: python encryption cryptography xor

我有一个用一个字节编码的二进制文件单字节异或,我试图用暴力破解文件并将生成的文件的哈希与原始文件进行比较,但找不到它,我与作者确认了原始哈希。

我写的代码

#!/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文件,然后我比较文件的哈希,但没有找到它。

1 个答案:

答案 0 :(得分:1)

通过使用AMAZON.NextIntent中的0xff的终止值,实际上您实际上缺少了range

摘录自range's documentation

  

对于正步,范围r的内容由   公式r [i] =开始+步骤* i,其中i> = 0且r [i] <停止。

您应该改用0xff作为终止值。

0x100