【发布时间】:2018-11-15 21:39:10
【问题描述】:
我正在尝试使用 Pycryptodome (3.7.0) 在 Python (2.7.14) 中使用 CBC 模式在 AES 中加密和解密简单文本
这是我尝试加密的代码:
from Crypto.Cipher import AES
from Crypto.Util import Padding
import base64
encryption_key = "1111111111111111111111111111111111111111111111111111111111111111".decode("hex")
text = "Test text"
text_padded = Padding.pad(text, AES.block_size)
iv = "0000000000000000"
cipher = AES.new(encryption_key, AES.MODE_CBC, iv)
cipher_enc = cipher.encrypt(text_padded)
encrypted = iv + cipher_enc
print encrypted
print base64.b64encode(encrypted)
print encrypted.encode("hex")
print base64.b64encode(encrypted).encode("hex")
输出是
0000000000000000X???]????H?
MDAwMDAwMDAwMDAwMDAwMFje9RzRXc3LHt8GBBLTSPQ=
3030303030303030303030303030303058def51cd15dcdcb1edf060412d348f4
4d4441774d4441774d4441774d4441774d4441774d466a6539527a525863334c4874384742424c545350513d
但是当我向http://aes.online-domain-tools.com/输入相同的键、文本和初始向量值时,我得到了不同的结果。
输出为:6a56bc5c0b05892ae4e63d0ca6b3169b
截图如下:
我做错了什么?如何通过pycrypto获取在线加密网站的输出值?
【问题讨论】:
标签: python encryption pycrypto pycryptodome