我正在尝试在Python中进行基本加密,在下面的程序中我加密了所有用户类型,然后我在解密后将它显示回用户。我正在使用我从这里下载的pyCrypto库:http://www.voidspace.org.uk/python/modules.shtml#pycrypto
以下是我到目前为止编写的代码:
from Crypto.Cipher import AES
AES_key = AES.new('This is a key')
#message = "The answer is no"
message = input("Enter text:")
ciphertext = AES_key.encrypt(message)
print (ciphertext)
decrypted_message = AES_key.decrypt(ciphertext)
print (decrypted_message)
问题是当我从用户那里获取输入时,我的代码不起作用,但是当我提供静态输入时,我评论的代码工作正常。
任何人都可以帮助我做什么,以便我接受用户输入并加密它?
答案 0 :(得分:0)
AES
是一种分组密码算法,因此它要求您将文本设置为16字节的倍数。您的消息"The answer is no"
是16个字节。但输入不会是这样
您可以使用MOD_CFB
的{{1}}来解决此问题。
AES
这适用于用户输入。
有关from Crypto.Cipher import AES
# Encryption
encryption_suite = AES.new('This is a key123', AES.MODE_CFB, 'This is an IV456')
cipher_text = encryption_suite.encrypt("A really secret message. Not for prying eyes.")
# Decryption
decryption_suite = AES.new('This is a key123', AES.MODE_CFB, 'This is an IV456')
plain_text = decryption_suite.decrypt(cipher_text)
(初始化向量)的更多信息,请转到Here