[英]AES-128-CBC don't work on the same way with LUA, PYTHON and PHP
我有一个Nodemcu和ESP8266的AM2320传感器。
我正在以纯文本格式将JSON格式的温度和湿度发送到HTTP服务器,以使用PHP和SQLITE3收集数据。
没问题。
但是我想用AES-CBC加密我的数据
我使用crypto.encrypt()函数和'AES-CBC'方法对ESP8266进行加密,如下例所示:
https://nodemcu-firmware.readthedocs.io/en/latest/en/modules/crypto/#cryptoencrypt
我使用Python 3在PC上进行相同的加密。
结果字符串与ESP8266和LUA 5.1上的结果匹配
接下来,我在PC上执行相同的加密,但是使用PHP 7.1
,,结果字符串与先前的结果不匹配。 我在openssl_encrypt()函数上使用' AES-128-CBC '方法。
我在Github.com的要点上将三种语言的脚本放在一起:
https://gist.github.com/bazooka07/bed368d313e218fcba332cb2127c70b1
在PHP中错了吗?
你能帮助我吗 ?
我在PHP中使用aes-256-cbc
而不是aes-128-cbc
尝试了您的代码,并且它提供了相同的输出。 将PHP加密方法更改为aes-256-cbc
应该可以解决此问题。
当要加密的消息长度不超过16个字符的倍数时,我为工作要点添加了一些修正。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.