我想将一些现有的AES代码从M2Crypto转换为等效的pycrypto,但文档很薄,特别是对于M2Crypto。我已将相关代码缩减为gist。主要问题是:
padding
和key_as_bytes
设置为false会加密到与pycrypto相同的密文。所以我需要在纯python中模仿padding=True
和key_as_bytes=True
。非常感谢任何帮助。
编辑:已解决 - 要点已经更新了相应的M2Crypto / pycrypto代码和测试,我将留在那里以防万一有人发现它有用。
答案 0 :(得分:2)
您必须实施PKCS#7填充/取消填充,这在RSA实验室的公开标准中是简单的,并且当然在维基百科上。另见这个答案:
AES 256 Encryption with PyCrypto using CBC mode - any weaknesses?
请注意,PKCS#7填充和PKCS#5填充是相同的,尽管后者仅正式用于8字节分组密码(例如DES / TDEA)。 OpenSSL默认使用PKCS#7填充。