php采集CryptoJS加密内容进行解密
2024-02-20 / PHP / 266 次围观 / 0 次吐槽 /<?php // GET传参数 if (isset($_GET['url'])) { $url = $_GET['url']; // 验证URL是否有效 if (filter_var($url, FILTER_VALIDATE_URL) && substr($url, 0, 8) === "https://") { // 初始化cURL会话 $ch = curl_init($url); // 设置cURL选项 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 返回结果而不是直接输出 curl_setopt($ch, CURLOPT_HEADER, false); // 不需要头部信息 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 不验证SSL证书 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 不验证SSL证书 // 执行cURL请求 $result = curl_exec($ch); // 错误处理 if (curl_errno($ch)) { die('Error: "' . curl_error($ch) . '" - Code: ' . curl_errno($ch)); } // 关闭cURL资源,并释放系统资源 curl_close($ch); // 使用正则表达式匹配内容 $pattern = "/html\\(z\\(\"(.*?)\",\"(.*?)\",\"(.*?)\"\\)\\)/"; preg_match($pattern, $result, $matches); if (!empty($matches)) { // 将匹配到的值赋给变量 $encryptedData = $matches[1]; $key = $matches[2]; $iv = $matches[3]; // 解密 $decryptedData = openssl_decrypt( base64_decode($encryptedData), // 假定传输经过了base64_encode,所以这里需要base64_decode 'AES-128-CBC', // 使用的加密算法和模式,需与CryptoJS中对应 $key, // 密钥 OPENSSL_RAW_DATA, $iv // 初始化向量 ); // 检查结果 if ($decryptedData === false) { // 解密失败处理 die('Decryption error: ' . openssl_error_string()); } // 输出解密后的数据 echo $decryptedData; }else { echo "正则匹配失败"; } } else { echo "无效URL"; } } else { echo "参数错误"; } ?>
Powered By Cheug's Blog
Copyright Cheug Rights Reserved.