在 PHP 中找不到正确的 3DES 密码

Cannot find the right 3DES cipher in PHP

我正在尝试计算 PHP 函数以在 ECB 模式 中获得 3DES(三重 DES)。但是我得到了错误的结果。

My result : 615EDC0E8EAD5DDE

Expected result : 7B66D9A5010A8035

(预期结果是用HSM计算出来的,网站确认)http://tripledes.online-domain-tools.com/

这是我的 PHP 函数,作为参数:

$data = "3200000025381234"

$key = "98137332E06BBA25AEE51CFD150EA8E3"

function tripleDES($data, $key) {
   $key= hex2bin($key);
   $data = hex2bin($data);
   $enc = openssl_encrypt($data, 'des-ede3', $key, OPENSSL_RAW_DATA | 
           OPENSSL_ZERO_PADDING);

   return strtoupper(bin2hex($enc));
}

我做错了什么?

多亏了Topaco的回答,我明白了我的错误。 所以我使用了这个 github 项目:https://github.com/gilfether/phpcrypt 并以这种方式更正了我的代码(使用我的 16 字节密钥):

function triple_DES($data, $key){
   $key = hex2bin($key);
   $data = hex2bin($data);
   $crypt = new PHP_Crypt($key, PHP_Crypt::CIPHER_3DES, PHP_Crypt::MODE_ECB);
   $encrypt = $crypt->encrypt($data);

   return strtoupper(bin2hex($encrypt));
}