收藏
回答

component_ticket解密后数据结构和文档中的不一致?

微信请求的url:

signature=cae44fee731822c391c56e4ba618e5fb93773182&timestamp=1721879807&nonce=1636169773&encrypt_type=aes&msg_signature=e1ca2339c205ebee00eb5c7a7e0a10e7bc5f8922

s请求体:

<xml>
    <AppId>
        <![CDATA[wxbd271744fdcca5bd]]>
    
    </AppId>
    <Encrypt>
        <![CDATA[dS2oV+avwITp9LtYXl5Bs8OE1YWVnhz3IKlE5zd2OrWICJNXHGuNLSrA/+vQff3CaYQMYmfSdFHoYOQt4UQcIydc8FTAQM3CI3MxH4VPJbvszB5FyDYTKGaSEGRHHtkvrH3WGa5uRu24/J7thdzML1Wx5cy/AMSO4bXJFj7KSwb7e28Og2p9Hn3oUQV6y5kR8hph0xcmMifq8bx6rdhPvEj4LS9QM+Uug7TJ0e+uJaXF0e/eZDNGrD97WfwL5RfhEKWonhvUcGkg0LDz1U+tmAHe+LMxppBswHHSe02j4P5yQKZde0/1HnS/B6U2PdoNDm4CipClEOUG4Jcrn5A+4C5xGLjZu7KjDw/p4OWc+R74gpUVqBZJ3IbIbzrPug/nlO8b0LXAE6q40UboH5ejl/C3/69vfjKZDxI9ZrCufGPLarG77MeqWB5ARVM02LVOVtSkweAa2yII/l7SySjQfw==]]>
    </Encrypt>
</xml>


aes 解密 encrypt 标签下的内容后, 得到明文:


1<xml><AppId><![CDATA[wxbd271744fdcca5bd]]></AppId>
<CreateTime>1721879807</CreateTime>
<InfoType><![CDATA[component_verify_ticket]]></InfoType>
<ComponentVerifyTicket><![CDATA[ticket@@@0hoDA1hCWVSr马赛克GBHkK80马赛克341zexSsJlFteMQ]]></ComponentVerifyTicket>
</xml>wxbd271744fdcca5bd


文档中, 解密后的明文数据结构如下:

random(16B)16 字节的随机字符串;
msg_len 为 msg 长度,占 4 个字节(网络字节序);
msg为解密后的明文;
appid为第三方平台Appid,开发者需验证此Appid是否与自身第三方平台相符。


解密后明文开头的 数字 1 是什么? 没有 16字节 的随机数, 也没有 4字节 的 msg_length, 后面的 msg 和 appid 倒是可以对上.

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

1 个回答

  • 跨商通
    跨商通
    07-29

    你用一下看是否正确,完事。不用去纠结文档的事。

    07-29
    有用
    回复 3
    • 神经蛙
      神经蛙
      07-29
      感谢回复, 拿到的 ticket 可以获取到token, 是OK的.  文档中的数据结构和我解密后的数据结构不一致, 怕以后微信别变动了
      07-29
      回复
    • 跨商通
      跨商通
      07-29回复神经蛙
      人家有权再变动。没必要去分析它的结构,把它当作无结构的串,完事。
      07-29
      回复
    • 神经蛙
      神经蛙
      07-29回复跨商通
      好. 感谢回复.
      07-29
      回复
登录 后发表内容