收藏
回答

component_verify_ticket解密出来的不是xml格式?

$ciphertext_dec = base64_decode($encrypted);

$iv = substr($this->key, 0, 16);

$decrypted = openssl_decrypt($ciphertext_dec, 'AES-256-CBC', $this->key, OPENSSL_RAW_DATA|OPENSSL_ZERO_PADDING, $iv);

打印$decrypted 是这样的: dd30a23742fd6b971 1611136039 wx7354340dfb5a098b,并不是一个xml

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

1 个回答

  • 陕西破折号
    陕西破折号
    01-20
    "3369a889d428c840\x00\x00\x011<xml><AppId><![CDATA[wx761e
    
    \n<CreateTime>1611145042</CreateTime>\n<InfoType><![CDATA
    
    t]]></InfoType>\n<ComponentVerifyTicket><![CDATA[ticket@@
    
    p5Lc57sbe-3VTCcqtzPtXYZxIDRQV1C9tSNbwT3iu2wTXCWskc
    
    rifyTicket>\n</xml>wx761e7856cd618a26\t\t\t\t\t\t\t\t\t"
    

    不是,解密出来的

    前面16个字节是随机的

    然后4个字节是消息长度,用网络字节序表示

    后面的才是xml

    最后还带了个appid



    01-20
    有用 1
    回复 1
    • huigeer
      huigeer
      01-21
      解出来了,官方的demo没问题,如果把加密解密的mcrypt换成openssl版本更好了
      01-21
      回复
登录 后发表内容
问题标签