Cheug's Blog

当前位置:网站首页 / PHP / 正文

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.