繁体   English   中英

AES-128-CBC与LUA,PYTHON和PHP的工作方式不同

[英]AES-128-CBC don't work on the same way with LUA, PYTHON and PHP

我有一个Nodemcu和ESP8266AM2320传感器。

我正在以纯文本格式将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.

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