[英]Key length issue: AES encryption on phpseclib and decryption on PyCrypto
我正在开发一个数据密集型项目,我一直在使用PHP来获取数据并使用phpseclib对其进行加密。 使用ECB模式在AES中加密了一大块数据 - 但密钥长度仅为10.我能够成功解密数据。
但是,我需要在项目的后期阶段使用Python,因此需要使用它来解密我的数据。 我尝试使用PyCrypto,但它告诉我密钥长度必须是16,24或32字节长,事实并非如此。 根据phpseclib文档,“键是空填充到最接近的有效大小”,但我不确定如何在Python中实现它。 简单地用6个空格扩展字符串的长度是行不通的。
我该怎么办?
我强烈建议你调整你的PHP代码以使用(至少)一个十六字节的密钥,否则你的加密系统会比它本来的要弱得多。
我还建议您切换到CBC模式,因为ECB模式可能会显示输入数据中的模式。 确保每次加密时都使用随机IV,并使用密文进行存储。
最后,要解决您的原始问题:
根据phpseclib文档,“键是空填充到最接近的有效大小”,但我不确定如何在Python中实现它。 简单地用6个空格扩展字符串的长度是行不通的。
空格字符0x20
与空字符0x00
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.