20
2017
09

华数视频地址加密方式算法PHP版本

<?php
function streamCode($enstr, $token = "wasu!@#48217#$@#1") {
	$klen = 4;
	if (strstr($enstr,".mp4")) {
		return $enstr;
	}
	$token = md5($token);
	$tm = $_SERVER['REQUEST_TIME'];
	$key1 = md5(substr($token, 0, 16));
	$key2 = md5(substr($token, 16, 32));
	$key3 = substr($enstr, 0, $klen);
	$key4 = $key1.md5($key1.$key3);
	$keylen = strlen($key4);
	$enstr = base64_decode(substr($enstr, $klen));
	$l16 = 0;
	$l14 = array();
	$l15 = array();
	$local13 = strlen($enstr);
	while ($l16 < 128){
		$l14[$l16] = $l16;
		$l15[$l16] = ord(substr($key4, $l16 % $keylen, 1)) & 0xff;
		$l16++;
	}
	$l16 = 0;
	$l17 = $l16;
	while ($l16 < 128) {
		$l17 = (($l17 + $l14[$l16]) + $l15[$l16]) % 128;
		$l19 = $l14[$l16];
		$l14[$l16] = $l14[$l17];
		$l14[$l17] = $l19;
		$l16++;
	}
	$l16 = 0;
	$l20 = array();
	$l17 = $l16;
	$l18 = $l17;
	while ($l16 < $local13) {
		$l18 = (($l18 + 1) % 128);
		$l17 = (($l17 + $l14[$l18]) % 128);
		$l19 = $l14[$l18];
		$l14[$l18] = $l14[$l17];
		$l14[$l17] = $l19;
		$l20[] = ((ord(substr($enstr, $l16, 1)) & 0xFF) ^ $l14[(($l14[$l18] + $l14[$l17]) % 128)]);
		$l16++;
	}
	$toStr = "";
	for($i = 0; $i < count($l20); $i++){
		$toStr .= chr($l20[$i]);
	}
	return strlen($toStr) > 26 ? substr($toStr, 26) : "";
}

function get_WasuVODUrl($url) {
	$play = parse_url($url);
	$tm = $_SERVER['REQUEST_TIME'];
	$timestamp = date("YmdHi", $tm);
	$token = sprintf("%s%s%s", "ccVOD@)!#\$WASUPC", $timestamp, $play['path']);
	return sprintf("http://clientvod.wasu.cn/%s/%s%s", $timestamp, md5($token), $play['path']);
}

$url = "";
$link = isset($_REQUEST['url']) ? $_REQUEST['url'] : "";
$enstr = empty($_REQUEST['enstr']) ? "" : $_REQUEST['enstr'];
if (strlen($enstr) > 32) {
	$url = streamCode($enstr);
} else if (strlen($link) > 15) {
	$url = @get_WasuVODUrl(base64_decode($link));
}
echo '{"url":"'.$url.'"}';
?>


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。