AES-128-CBC 与 LUA、PYTHON 和 PHP 的工作方式不同
AES-128-CBC don't work on the same way with LUA, PYTHON and PHP
我有一个带 Nodemcu 的 ESP8266 和一个 AM2320 传感器。
我将 JSON 格式的纯文本温度和湿度发送到我的 HTTP 服务器,用于使用 PHP[ 收集数据=53=] 和 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 个字符的倍数相匹配时,我对我的要点进行了一些修复。
我有一个带 Nodemcu 的 ESP8266 和一个 AM2320 传感器。
我将 JSON 格式的纯文本温度和湿度发送到我的 HTTP 服务器,用于使用 PHP[ 收集数据=53=] 和 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 个字符的倍数相匹配时,我对我的要点进行了一些修复。