我試圖讓使用XOR運算符一個密碼。現在,這是我有:XOR加密的蟒蛇 - 奇數長度字符串
from binascii import hexlify, unhexlify
from itertools import cycle
s = '636174'
key = '13'
def cipherkey(s, key):
bin_key = bin(int(key))[2:]
bin_s = bin(int(s, 16))[2:]
k = []
if len(bin_key) < len(bin_s):
for i, j in zip(cycle(bin_key), bin_s):
k.append('{}'.format(i))
else:
for i, j in zip(bin_key, cycle(bin_s)):
k.append('{}'.format(i))
return int("".join(k),2)
def xor_cipher(s,key):
n = cipherkey(s, key)
out = n^int(s,16)
return hex(out)
print(unhexlify(xor_cipher(s, key)))
我敢肯定,這是超級低效的代碼,但我想盡可能多的它保持越好。我已經開始對此有一段時間了,並且還沒有發現這個錯誤。在我如何重複zip(cycle(bin_key), bin_s)
的過程中一定有一個錯誤。
填寫'hex'的返回值,如[見] [這裏](http://stackoverflow.com/questions/339007/nicest-way-to-pad-zeroes-to-string) –