三重解密功能不起作用

时间:2016-12-06 17:30:28

标签: php encryption mcrypt 3des php-openssl

所以我一直在做这个功能,我不确定是什么问题。

我获得加密数据和密钥:

$key = 'aaaaaaaabbbbbbbbccccccccdddddddd';
$data = 'b5057bbc04b842a96144a0f617f2820e';

我已经把它们转换成二进制文件了:

$key = pack('H*',$key);
$data = pack('H*',$data);

运行解密功能:

echo bin2hex(mcrypt_decrypt(Mcrypt_3des, $key, $data, MCRYPT_MODE_ECB));

但是我得到的是:e2119b734b5050e3fa8717ee17f3a548

但如果我在http://tripledes.online-domain-tools.com/上运行相同的解密 或http://www.emvlab.org/descalc/?key=aaaaaaaabbbbbbbbccccccccdddddddd&iv=0000000000000000&input=b5057bbc04b842a96144a0f617f2820e&mode=ecb&action=Decrypt&output=54657374313233313233000000000000

实际上它变为54 65 73 74 31 32 33 31 32 33 00 00 00 00 00 00

实际上是Test123123

对可能出现什么问题的任何建议?

修改

我尝试过切换到openssl_decrypt

但是我一直得到一个假的回复。

代码:

$result = openssl_decrypt($data,'des-ede3', $key);
result = bool(false)

1 个答案:

答案 0 :(得分:0)

我能够使用开放SSL解密功能使其工作:

        System.Reflection.Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
        System.Reflection.ManifestResourceInfo listDataInfo = assembly.GetManifestResourceInfo("MyNamespace.ListData.xml");