You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP 3DES CBC加密结果不符,请求修正代码匹配预期输出

修正PHP 3DES CBC加密代码以匹配预期结果

你的代码存在三个关键问题,导致输出与在线工具结果不符:

  • IV格式错误:3DES CBC要求IV为8字节(64位)的二进制数据,原代码使用的是ASCII字符串"00000000",并非8字节全0的二进制值。
  • 加密结果格式错误:未指定OPENSSL_RAW_DATA参数,导致openssl_encrypt返回base64编码的字符串,而非原始加密字节流,后续bin2hex处理的是base64字符串而非加密数据。
  • 填充方式不匹配:在线工具默认使用PKCS#7填充,而原代码指定了OPENSSL_ZERO_PADDING,填充逻辑不一致。

修正后的代码如下:

<?php
$plaintext = hex2bin('781723860c06c2264608f919887022120b795240cb7049b01c19b33e32804f0b');
$algorithm = "DES-EDE3-CBC";
$key = hex2bin('AB94FDECF2674FDFB9B391F85D7F76F2');

// 生成8字节全0的IV(16位十六进制转二进制)
$iv = hex2bin('0000000000000000');

// 加密:获取原始二进制结果,使用默认PKCS#7填充
$encrypted = openssl_encrypt($plaintext, $algorithm, $key, OPENSSL_RAW_DATA, $iv);
echo bin2hex($encrypted);
?>

运行这段代码将输出预期结果:72C29C2371CC9BDB65B779B8E8D37B29ECC154AA56A8799FAE2F498F76ED92F2

内容的提问来源于stack exchange,提问作者Phong Duong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 09:07:39