使用 pyCrypto 加密 Python 中的用户输入



我正在尝试在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)
问题是当我从用户那里获取输入时,我的代码

不起作用,但是当我给出静态输入时,我已经注释了我的代码工作正常。

任何人都可以帮忙,我应该怎么做才能接受用户输入并加密它?

AES是一种

分组密码算法,因此它要求您的文本是 16 字节的倍数。 您的消息"The answer is no"为 16 个字节。但输入不会如此您可以使用AESMOD_CFB来解决此问题。

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)

这将适用于用户输入。

有关IV(初始化向量)的更多信息,请访问此处

相关内容

  • 没有找到相关文章

最新更新