php - 无法使用 php 解码 arduino 编码的 AES-128 ECB 字符串
问题描述
我有一个使用 Arduino 的加密字符串。
Input text => Message to be encrypted
Key as hex => 01020304050607080910111213141516
Encrypted => dba8f0f76ed0e75abc4a970b254478bd0f47a9021a8fe940a2685e4b7a8df1fe
我无法使用 PHP OpenSSL 解密它。
我试过的。
$raw = "dba8f0f76ed0e75abc4a970b254478bd0f47a9021a8fe940a2685e4b7a8df1fe";
$key = "01020304050607080910111213141516";
$decrypt = openssl_decrypt($raw, 'AES-128-ECB', $key, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);
var_dump($decrypt);
string(64) "s=a����@T'Oҳ��,8��)�oGx��ݡ����*�������4f�z���N�"
我怎样才能得到解密的字符串=>“要加密的消息”
解决方案
$key = "01020304050607080910111213141516";
// convert your key
$key = pack('H*',$key);
$raw = "dba8f0f76ed0e75abc4a970b254478bd0f47a9021a8fe940a2685e4b7a8df1fe";
//convert your cipertext
$raw = hex2bin($raw);
$decrypt = openssl_decrypt($raw, 'aes-128-ecb', $key, OPENSSL_ZERO_PADDING | OPENSSL_RAW_DATA);
var_dump($decrypt); // Message to be encrypted
推荐阅读
- python - 带有传递变量的 OCC gp_Pnt
- php - Laravel 雄辩的关系和数据透视表
- python - 在 / 处获取 TemplateDoesNotExist
- json - 在 Postman 中发送多个文件 - NodeJS
- reactjs - 在 webpack 4 弹出的反应应用程序中添加较少的配置时出错
- visual-studio - 如何在 Live 网站上启用 Asp.Net.Code“开发模式”
- flutter - 如何注意用户何时从滚动中释放了他/她的手指
- python-3.x - 'TypeError: 'CompositeModel' object is not callable' 尝试拟合复合模型时
- flutter - 有没有办法将用户锁定在应用程序内,除非输入密码,否则无法访问主屏幕
- java - java中String[]数据和String...数据有什么区别