【发布时间】:2020-04-01 16:34:23
【问题描述】:
对 AES 的基本理解是: 1) 128 位/192 位/256 位密钥 2) 数据块大小为 16 字节/128 位 3)密码(加密)文本和纯文本具有相同的长度
然而,当谈到 Python Crypto.Cipher AES 实现时,KEY & DATA 以 ASCII 形式表示。那么,如果我的原始数据是十六进制格式怎么办?在将它们传递给 AES 加密之前,我必须将它们转换为 ASCII 格式吗?同样的需要也适用于 KEY?
我找到了一些示例代码,它显示加密数据可以转换为 HEX 形式,但输入 (KEY & PLAIN TETXT) 是否必须是 ASCII 形式?
>>> from Crypto.Cipher import AES
>>> a = AES.new("1234567890123456")
>>> m = 'aaaabbbbccccdddd'
>>> a.encrypt(m)
'H\xe7\n@\xe0\x13\xe0M\xc32\xce\x16@\xb2B\xd0'
>>> import binascii
>>> binascii.hexlify(a.encrypt(m))
'48e70a40e013e04dc332ce1640b242d0'
【问题讨论】:
标签: python-3.x aes