我想将一些现有的 AES 代码从 M2Crypto 转换为等效的 pycrypto,但文档很薄,尤其是对于 M2Crypto。我已将相关代码简化为gist。主要问题是:
- Pycrypto 要求输入长度为 16 的倍数,而 m2crypto 则不需要。
- 即使输入长度是 16 的倍数,密文也不同。在尝试了 M2Crypto 密码参数之后,结果证明设置
padding
和key_as_bytes
错误使用 pycrypto 加密为相同的密文。所以我需要在纯python中padding=True
进行模拟。key_as_bytes=True
任何帮助将非常感激。
编辑:已解决 - 要点已使用等效的 M2Crypto/pycrypto 代码和测试进行了更新,我将把它留在那里以防有人发现它在未来有用。