亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

微信開放平臺:驗證票據component_verify_ticket解密

在开发微信开放平台-第三方平台过程中,遇到了component_verify_ticket无法解密问题。官方文档晦涩难懂,于是自己重新写了一个解密component_verify_ticket的方法。

使用前请先安装mcrypt扩展

<?php
/**

[email protected]
* Notes:
* DateTime: 2023/7/12 10:23
*/

namespace App\Http\Services;

/**
* Notes:
* DateTime: 2023/7/12 10:23
*/
class Jie
{
   public static function decode($xml, $encodingaeskey): array
   {
       $xml = (array)simplexml_load_string($xml, 'SimpleXMLElement', LIBXML_NOCDATA);
       $str = $xml['Encrypt'];
       $data = self::aes_decode($str, $encodingaeskey);
       $xml = (array)simplexml_load_string($data, 'SimpleXMLElement', LIBXML_NOCDATA);
       return $xml;
   }

   public static function aes_decode($message, $encodingaeskey)
   {
       $key = base64_decode($encodingaeskey . '=');

       $ciphertext_dec = base64_decode($message);
       $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, $ciphertext_dec);
       mcrypt_generic_deinit($module);
       mcrypt_module_close($module);
       $block_size = 32;

       $pad = ord(substr($decrypted, -1));
       if ($pad < 1 || $pad > 32) {
           $pad = 0;
       }
       $result = substr($decrypted, 0, (strlen($decrypted) - $pad));
       if (strlen($result) < 16) {
           return '';
       }
       $content = substr($result, 16, strlen($result));
       $len_list = unpack("N", substr($content, 0, 4));
       $contentlen = $len_list[1];
       $content = substr($content, 4, $contentlen);
       return $content;
   }
}


點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優質文章

正在加載中
PHP開發工程師
手記
粉絲
4
獲贊與收藏
0

關注作者,訂閱最新文章

閱讀免費教程

  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消