收藏
回答

微信一物一码的二维码包如何解密?

微信文档中原文

3.1 解密说明

实名数据的加密方式使用AES的CBC模式,iv使用加解密钥,填充使用PKCS7Padding,最后使用base64进行编码。

解密时,先进行base64解码,然后使用密钥及AES/CBC/PKCS7Padding进行解密。 密钥在申请实名接口权限时,会提供到申请方。


然后我实现的时候发现,AES/CBC/PKCS7Padding 解需要原数据、key、iv

现在原数据已经有了,就是接口下发的数据 base64 解一下,iv 说是密钥,那么 key 是什么?在哪里获得?找了很久没发现哪里有提到,求教

回答关注问题邀请回答
收藏

6 个回答

  • 小程序交易保障-kk
    小程序交易保障-kk
    2020-06-22

    你好,iv和key是同一个参数,可以试试如下的办法:

    1. 如果你是品牌商,登录公众平台查看站内信即可,站内信内包含iv和key
    2. 如果你是服务商,请直接告知第三方服务平台的appid,之后会有相应的iv和key信息通知


    2020-06-22
    有用
    回复
  • 毕方瑜
    毕方瑜
    2020-07-01

    https://developers.weixin.qq.com/community/develop/article/doc/000266a74f8c788a5e9a1626351013

    python demo

    2020-07-01
    有用 2
    回复
  • CC
    CC
    2019-11-28

    老哥救命,这个iv我也找不到哪有

    2019-11-28
    有用 1
    回复
  • 好奇心
    好奇心
    2020-09-27

    解密java 版:https://thinkcode.blog.csdn.net/article/details/108822436

    2020-09-27
    有用
    回复
  • 心尘
    心尘
    2020-05-21

    怎么发邮件问?我也有解密的问题。

    2020-05-21
    有用
    回复
  • 昕曌
    昕曌
    2019-11-06

    同问,太坑了,AES 和CBC的加密参数也没有提供,只能发邮件问问

    2019-11-06
    有用
    回复 6
    • 昕曌
      昕曌
      2019-11-06
      用php5的一个流程,可以顺利解密,正在捣鼓php7
      php7不支持下面那些mcrypt方法,需要用openssl_decrypt替代
      public function decode()
          {
              $key = 'XXXXXXX';
              $text = file_get_contents('./uploads/code.txt');
              $text = base64_decode($text);


              $module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
              $iv = substr($key, 0, 16);
              mcrypt_generic_init($module, $key, $iv);
              //解密
              $decrypted = mdecrypt_generic($module, $text);
              mcrypt_generic_deinit($module);
              mcrypt_module_close($module);


              $pkc_encoder = new \PKCS7Encoder;
              $result = $pkc_encoder->decode($decrypted);
              debug($result);


          
          }
      php7方法,待测试
       $decrypted = openssl_decrypt($text, 'AES-128-CBC', $key, OPENSSL_CIPHER_AES_128_CBC, $key);
             
              $pkc_encoder = new \PKCS7Encoder;
              $result = $pkc_encoder->decode($decrypted);
              debug($result);
      2019-11-06
      1
      回复
    • 昕曌
      昕曌
      2019-11-06回复昕曌
      php7方法已确认,可以用
      2019-11-06
      1
      回复
    • Vincent
      Vincent
      2019-11-07
      感谢,测试可用,之前也试过 key 和 iv 都是密钥,不知道为什么没成功
      2019-11-07
      回复
    • CC
      CC
      2019-11-28回复Vincent
      楼主你是密匙拿来当iv用成功了吗?
      2019-11-28
      回复
    • 晓
      2020-06-06回复昕曌
      我用的php5测试没成功
      2020-06-06
      回复
    查看更多(1)
登录 后发表内容
问题标签