码上爬 第5题

<?php
$key = "jo8j9wGw%6HbxfFn";           // 16 字节
$iv  = "0123456789ABCDEF";          // 16 字节


$headers[] = 'Cookie:Hm_lvt_0d2227abf9548feda3b9cb6fddee26c0=1753794156; HMACCOUNT=8CFCE68853DBDF9C; sessionid=acnti2em752v7l48qa9av21r69td509r; Hm_lpvt_0d2227abf9548feda3b9cb6fddee26c0=1753794360';
$headers[] = 'User-Agent:Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36 Edg/123.0.0.0';
$headers[] = 'Referer:https://mashangpa.com/problem-detail/5/';

$sums = 0;
for ($i=1;$i<=20;$i++){
    $page = $i;
    $time = get_total_millisecond();

    $data['page'] = $page;
    $data['_ts'] = $time;
    $text = json_encode($data);
    $blockSize = 16;
    $pad = $blockSize - (strlen($text) % $blockSize);
    $paddedData = $text . str_repeat(chr($pad), $pad);
    //echo $paddedData;
    
    $encrypted = openssl_encrypt($paddedData,'aes-128-cbc',$key,OPENSSL_RAW_DATA | OPENSSL_NO_PADDING,$iv);
    $post['xl'] = bin2hex($encrypted);

    //var_dump($post);
    $url = "https://mashangpa.com/api/problem-detail/5/data/?page={$page}";
    //echo $url;echo PHP_EOL;

    $code = get_curl_contents($url,$headers,json_encode($post));
    $json = json_decode($code,true);
    //var_dump($json);exit;
    $sum = 0;
    foreach($json['current_array'] as $v){
        $sum +=$v;
    }
    $sums += $sum;
}
echo $sums;



function get_curl_contents($bstrURL, $headers = null, $post = null) {
    $ch = curl_init($bstrURL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    if ($headers) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    if ($post) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    }
    $data = curl_exec($ch);
    // 关闭CURL会话
    curl_close($ch);
    return $data;
}


function get_total_millisecond() {
    $time = explode(" ", microtime());
    $time = ($time[1] + $time[0]) * 1000;
    $time = round($time) . '';
    return $time;
}

function padPkcs7($data, $blocksize = 16){
    $pad = $blocksize - (strlen($data) % $blocksize);
    return $data . str_repeat(chr($pad), $pad);
}
none
最后修改于:2025年08月03日 17:08

添加新评论