【发布时间】:2017-04-21 10:43:45
【问题描述】:
所以我一直在处理这个函数,但我不确定出了什么问题。
我得到加密的数据和密钥:
$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)
【问题讨论】:
-
仅供参考,mcrypt is a dead project 可能会从 PHP 的未来版本中删除
-
@Machavity 很高兴知道,我可以使用任何更新的函数吗?
-
您是否看到下面无数警告说不要使用它?我觉得从来没有人这样做过!
标签: php encryption mcrypt 3des php-openssl