true, CURLOPT_TIMEOUT=>10, CURLOPT_FOLLOWLOCATION=>true ]); $response=curl_exec($ch); if(curl_errno($ch)){ die("Curl error: ".curl_error($ch)); } curl_close($ch); /* ========================== CHECK JSON ========================== */ $encData=json_decode($response,true); if(!$encData){ echo "
";
echo "Worker response:\n";
echo htmlspecialchars($response);
echo "
"; die("JSON decode gagal"); } /* ========================== AES DECRYPT ========================== */ $iv=base64_decode($encData["iv"]); $data=base64_decode($encData["data"]); $key=hash_pbkdf2( "sha256", $SECRET, $SALT, $ITER, 32, true ); $tag=substr($data,-16); $ciphertext=substr($data,0,-16); $decrypted=openssl_decrypt( $ciphertext, "aes-256-gcm", $key, OPENSSL_RAW_DATA, $iv, $tag ); if(!$decrypted){ die("Decrypt gagal"); } $channel=json_decode($decrypted,true); if(!$channel){ die("Channel JSON invalid"); } ?> Player