首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何用PHP工具解密字符串(由MetaTrader终端4固定版本的AES256加密)?

如何用PHP工具解密字符串(由MetaTrader终端4固定版本的AES256加密)?
EN

Stack Overflow用户
提问于 2016-12-11 12:32:06
回答 1查看 3.6K关注 0票数 1

我有一个字符串,说"My secret text“。

它是使用CRYPT_AES256加密的(使用的方法是 function )。

键(32个字节)是,比方说,"1234567890ABCDEFGHIJKLMNOPQRSTUV".

MQL4函数不提供输入IV的可能性,我也不知道是否使用了CBC-mode或其他什么东西。

如何使用PHP返回“我的秘密文本”?

(我得说,试过了

openssl_decrypt(...)

mcrypt_decrypt(...)

但没有成功。

)

更新:我从MQ获得了答案:

使用的模式是ECB.

IV确实没有被使用。

所以,我的代码是:

代码语言:javascript
复制
<?php

$hexMessage       = $_POST["enc_data"];   //this is in hex form, I used ArrayToHex before sending
$encryptedMessage = hex2bin($hexMessage);
$encryptionMethod = "AES-256-ECB";  
$secretKey        = "1234567890ABCDEFGHIJKLMNOPQRSTUV";

$decryptedMessage = openssl_decrypt($encryptedMessage, $encryptionMethod, $secretKey);

echo "Decrypted: $decryptedMessage";

?>

没有结果(即使我使用OPENSSL_RAW_DATA作为选项)。

Update2:

使用mcrypt_decrypt(...)可以工作。但是,我很好奇,为什么 openssl_decrypt(...) 不工作(结果什么都没有)?

EN

回答 1

Stack Overflow用户

发布于 2017-03-08 14:46:26

以下是两种不同的解密方法:

代码语言:javascript
复制
$decryptedMessage = mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $secretKey, $encryptedMessage, MCRYPT_MODE_ECB);
$decryptedMessage = openssl_decrypt($encryptedMessage, "AES-256-ECB", $secretKey, OPENSSL_ZERO_PADDING|OPENSSL_RAW_DATA);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41086192

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档