1
我有一個以十六進制編寫的XOR加密字節列表(包含在「cipher.txt」中,每行一個字節),我知道使用的XOR鍵是一個字節。因此,我正在嘗試這樣的蠻力方法:Python中的異或錯誤(2.7)
f = open("cipher.txt", "r")
ciphers = f.readlines()
f.close
for x in range(0, 255):
key = bin(int(x))[2:]
for line in ciphers:
w = bin(int(line, 16))[2:]
y = int(w)
z = y^x
print chr(z),
print ""
在那裏,我的結果(z)不保留二進制。相反,我得到的結果像「10010084」。 如果我不使用「y = int(w)」部分,我會得到「不支持的操作數類型爲^:'str'和'int'」作爲錯誤,即使我不明白爲什麼,因爲變量的定義與工作的「關鍵」變量類似。
我懷疑在我的代碼中有一個非常愚蠢的錯誤導致它失敗。 任何人都可以建議嗎?
@cval謝謝你非常喜歡這個技巧。 – fragman