【发布时间】:2018-10-01 08:45:15
【问题描述】:
我正在用 Python 3 做一个小项目。
我目前的问题是基于 AES 的文件解密。文件内容(文本)采用 AES 对称加密。
我已经导入 PyCrypto:https://www.dlitz.net/software/pycrypto/api/current/
文档对对称密钥的说明很少:
key (byte string) - 对称密码中使用的密钥。它的长度必须为 16 (AES-128)、24 (AES-192) 或 32 (AES-256) 字节。
我有钥匙,看起来像:
0xB0,0x0D,0xDF,0x9D,...(出于安全原因,我在这里不报告完整的密钥)
无论如何,我的第一个问题:
那是什么字符串?它看起来像 ASCII,但我对编码缺乏深入的了解。我需要任何类型的转换/解码吗?
我写了一个小程序来打开一个文件并解密它。但是 PyCrypto 抛出一个错误,我现在花了 5 个小时反复试验,没有任何进展:
ValueError: AES key must be either 16, 24, or 32 bytes long
所以我都尝试了:
- 初始化为字符串:
key = "0xB0,0x0D,0xDF,0x9D,..."
和 2. 作为字节串:
key = b"0xB0,0x0D,0xDF,0x9D,..."
没有效果。
有什么想法或想法吗?
最好的问候, AFX
【问题讨论】:
-
如果密钥是某种密码或密码短语,则对该密钥进行哈希处理,以便获得随机位。
-
花五小时学习编码,包括十六进制。
标签: python-3.x encryption utf-8 ascii decoding