繁体   English   中英

密钥长度问题:phpseclib上的AES加密和PyCrypto上的解密

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM