我知道有一个内置的xor运算符可以用Python导入.我正在尝试执行xor加密/解密.到目前为止,我有:
def xor_attmpt(): message = raw_input("Enter message to be ciphered: ") cipher = [] for i in message: cipher.append(bin(ord(i))[2::])#add the conversion of the letters/characters #in your message from ascii to binary withoout the 0b in the front to your ciphered message list cipher = "".join(cipher) privvyKey = raw_input("Enter the private key: ") keydecrypt = [] for j in privvyKey: keydecrypt.append(bin(ord(j))[2::]) #same keydecrypt = "".join(keydecrypt )#same print "key is '{0}'" .format(keydecrypt) #substitute values in string print "encrypted text is '{0}'" .format(cipher) from operator import xor for letter in message: print xor(bool(cipher), bool(keydecrypt))
这个:
> for letter in message: print xor(bool(cipher), bool(keydecrypt))
是我的python开始出错的地方.
输出看起来像这样
Enter message to be ciphered: hello Enter the private key: \@154> key is '10111001000000110001110101110100111110' encrypted text is '11010001100101110110011011001101111' False False False False False
我搞砸的是试图将这两个二进制(密钥和加密)进行比较并给出真(1)或假(为0).然后xor应该通过比较两者得到一个结果1和0的二进制列表.有什么输入?