【发布时间】:2017-01-02 07:43:50
【问题描述】:
我正在尝试在 python 中制作一个简单的异或加密程序,而我现在所拥有的几乎可以正常工作,只是有时它不能,我只是不知道为什么。例如,如果我输入“hello”和密钥“1234”,它会将其加密为 YW_X^,然后如果我使用相同的密钥对其进行解密,它将打印“hello”。但是,如果我将密钥更改为“qwer”,则加密消息类似于“^Y^R ^^^^”,如果我尝试对其进行解密,则会出现“heERQWERoi”。 这是代码:
from itertools import cycle, izip
choice = int(raw_input('Press 1 to encrypt, 2 to decrypt. '))
if choice == 1:
message = raw_input('Enter message to be encrypted: ')
privatekey = raw_input('Enter a private key: ')
encrypted_message = ''.join(chr(ord(c)^ord(k)) for c,k in izip(message, cycle(privatekey)))
print 'Encrypted message:'
print encrypted_message
elif choice == 2:
todecrypt = raw_input('Enter a message to be decrypted: ')
otherprivatekey = raw_input('Enter the private key: ')
decrypted_message = ''.join(chr(ord(c)^ord(k)) for c,k in izip(todecrypt, cycle(otherprivatekey)))
print 'Decrypted message:'
print decrypted_message
我不知道它有什么问题,所以我非常感谢您的帮助,谢谢!
【问题讨论】:
-
出于好奇,为什么要异或加密?
-
只是出于兴趣,我不会用它来做任何事情
标签: python python-2.7 encryption cryptography xor