如何在 Python 中使用长度超过 256 位的密钥使用 AES CBC

How to use AES CBC using a key longer than 256 bits in Python

有人有办法 encrypt/decrypt 使用 Python 以 1024 位(128 字节)的密钥在 CBC 模式下处理 AES 吗?到目前为止发现的所有 AES pkgs 似乎都限于 256 位密钥。我的加密背景有限....

AES 仅针对 128、192 和 256 位的密钥大小定义。无法使用其他密钥大小并仍将其称为 AES。如果你想与其他实现兼容,你将不得不坚持定义的密钥大小。

获得正确大小的密钥的两种常见方法是:

  • 只需将键的一部分切掉以匹配其中一种有效尺寸。仅当大密钥是用大量熵创建时才应这样做。如果不是,那么您可能会使暴力破解变得容易得多。

  • 运行 大密钥通过一些散列函数如SHA-256得到一个256位的密钥。同样,如果大密钥的熵较低,您应该将其视为长密码,并且 运行 例如通过 PBKDF2 进行多次迭代。