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

如何将VB.NET中的AES IV字节数组转换为PHP openssl_encrypt可用格式

IV转换解决方案

PHP的openssl_encrypt函数要求IV参数为16位原始二进制字符串,你可以用以下两种方法生成符合要求的IV:

转换方法

  • 方法一:通过十六进制字符串转换(更简洁)
    首先把VB.NET中定义的字节按顺序拼接为十六进制字符串db8495bddad5d3f8ce819ca5b38b2454,再用hex2bin函数转为二进制格式即可:
$iv = hex2bin('db8495bddad5d3f8ce819ca5b38b2454');
  • 方法二:逐个字节拼接
    直接把每个十六进制值用chr函数转为字符后拼接:
$iv = chr(0xDB) . chr(0x84) . chr(0x95) . chr(0xBD) . 
      chr(0xDA) . chr(0xD5) . chr(0xD3) . chr(0xF8) . 
      chr(0xCE) . chr(0x81) . chr(0x9C) . chr(0xA5) . 
      chr(0xB3) . chr(0x8B) . chr(0x24) . chr(0x54);

额外注意事项

  • 你提到的加密密钥是十六进制编码字符串,同样需要转为原始二进制才能正常使用,否则会因为长度不符合AES-256要求(32字节)导致加密结果和合作方不一致:
$key = hex2bin('你的十六进制格式密钥');
  • option参数设为0时,openssl_encrypt会返回base64编码的加密结果,需要确认合作方的VB.NET代码输出格式是否匹配,若对方输出原始二进制,可将option改为OPENSSL_RAW_DATA。
  • 两边需确认填充规则一致,默认情况下PHP openssl和VB.NET的AES实现都使用PKCS7填充,无需额外调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 13:12:02