V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gyinbj
V2EX  ›  PHP

企微对外收款支付回调 解密失败

  •  
  •   gyinbj · 2023-11-03 15:21:55 +08:00 · 808 次点击
    这是一个创建于 371 天前的主题,其中的信息可能已经有所发展或是发生改变。

    https://developer.work.weixin.qq.com/document/path/97478

    Resource 结构体解密失败

    1. 获取『对外收款』应用中配置的 callback_aeskey ,根据加解密方案说明中的方法获得 aeskey
    2. 针对 resource.algorithm 中描述的算法(目前为 AEAD_AES_256_GCM ),取得对应的参数 nonce 和 associated_data
    3. 对 resource.ciphertext 进行 Base64 解码
    4. 使用 aeskey 、nonce 和 associated_data ,对 Base64 解码后的数据进行解密,得到 JSON 形式的业务结构体 注:AEAD_AES_256_GCM 算法的接口细节,请参考 rfc5116

    这部分 具体要什么骚操作才能解密成功 。。 一点思路都没有。

    1 条回复    2023-11-06 15:29:21 +08:00
    coderzhangsan
        1
    coderzhangsan  
       2023-11-06 15:29:21 +08:00
    流程说的很清楚了,你只是不了解如何实现 AES 加/解密,建议你搜索下 AES 加密解密原理;至于实现方式 PHP 已经内置 openssl 库,使用 openssl_decrypt 解密即可,至于填充方式 openssl 默认 PKCS7 ,如果响应方没有明确指定填充方式,就以默认的方式处理即可,响应结构中的 aeskey 是密钥,nonce 应该是初始化向量 iv ,这个向量 iv 长度可以使用 openssl_cipher_iv_length 方法查询校验。
    示例 openssl_decrypt("base64_decode 后的密文", "AES_256_GCM", "返回的 aeskey", OPENSSL_RAW_DATA, "返回的 nonce")
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2537 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 15:17 · PVG 23:17 · LAX 07:17 · JFK 10:17
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.