Comments (4)
这个很久没用过了。刚才简单试了下,一时看不出来是怎么算的。可能要稍后找时间再细看了。
from youku-lixian.
key的计算变复杂了很多..用st时间减去60秒再做了内部的一些自己写的算法.破解了pptv的播放器swf.大概看了下..
哪天我给你贴代码...flash的代码..我不太看得懂...
看你忙不过来啊...呵呵..加油啊
from youku-lixian.
config.dMillis = Date.parse(xmldown.servertime) - 60 * 1000 - Date.parse(new Date().toUTCString());
_loc_1 = Utils.constructKey((config.dMillis + Date.parse(new Date().toUTCString())) / 1000);
public static const SERVER_KEY:String = "qqqqqww";
public static function getkey(param1:String) : uint
{
var _loc_5:String = null;
var _loc_6:uint = 0;
var _loc_7:uint = 0;
var _loc_2:* = param1.split("");
var _loc_3:uint = 0;
var _loc_4:Number = 0;
while (_loc_4 < _loc_2.length)
{
_loc_5 = _loc_2[_loc_4];
_loc_6 = _loc_5.charCodeAt(0);
_loc_7 = _loc_6 << _loc_4 % 4 * 8;
_loc_3 = _loc_3 ^ _loc_7;
_loc_4 = _loc_4 + 1;
}
return _loc_3;
}// end function
static function encrypt(param1:String, param2:String) : String
{
var _loc_5:uint = 0;
var _loc_6:uint = 0;
var _loc_7:uint = 0;
var _loc_13:uint = 0;
var _loc_14:uint = 0;
var _loc_15:uint = 0;
var _loc_16:uint = 0;
var _loc_17:uint = 0;
var _loc_18:uint = 0;
var _loc_19:uint = 0;
var _loc_20:uint = 0;
var _loc_21:uint = 0;
var _loc_22:uint = 0;
var _loc_23:uint = 0;
var _loc_24:int = 0;
var _loc_25:uint = 0;
var _loc_26:uint = 0;
var _loc_27:uint = 0;
var _loc_28:uint = 0;
var _loc_29:uint = 0;
var _loc_30:uint = 0;
var _loc_31:uint = 0;
var _loc_32:uint = 0;
var _loc_33:uint = 0;
var _loc_34:uint = 0;
var _loc_35:uint = 0;
var _loc_36:uint = 0;
var _loc_37:uint = 0;
var _loc_38:uint = 0;
var _loc_39:uint = 0;
var _loc_40:uint = 0;
var _loc_41:uint = 0;
var _loc_3:int = 16;
var _loc_4:* = getkey(param2);
var _loc_8:* = param1.split("");
var _loc_9:* = param2.split("");
var _loc_10:* = _loc_4;
_loc_5 = _loc_4 << 8 | _loc_10 >>> 24;
_loc_6 = _loc_10 << 16 | _loc_10 >>> 16;
_loc_7 = _loc_10 << 24 | _loc_10 >>> 8;
var _loc_11:String = "";
var _loc_12:uint = 0;
while (_loc_12 + _loc_3 <= _loc_8.length)
{
_loc_13 = _loc_8[_loc_12].charCodeAt(0) << 0;
_loc_14 = _loc_8[(_loc_12 + 1)].charCodeAt(0) << 8;
_loc_15 = _loc_8[_loc_12 + 2].charCodeAt(0) << 16;
_loc_16 = _loc_8[_loc_12 + 3].charCodeAt(0) << 24;
_loc_17 = _loc_8[_loc_12 + 4].charCodeAt(0) << 0;
_loc_18 = _loc_8[_loc_12 + 5].charCodeAt(0) << 8;
_loc_19 = _loc_8[_loc_12 + 6].charCodeAt(0) << 16;
_loc_20 = _loc_8[_loc_12 + 7].charCodeAt(0) << 24;
_loc_21 = 0 | _loc_13 | _loc_14 | _loc_15 | _loc_16;
_loc_22 = 0 | _loc_17 | _loc_18 | _loc_19 | _loc_20;
_loc_23 = 0;
_loc_24 = 0;
while (_loc_24 < 32)
{
_loc_23 = _loc_23 + DELTA;
_loc_33 = (_loc_22 << 4) + _loc_4;
_loc_34 = _loc_22 + _loc_23;
_loc_35 = (_loc_22 >>> 5) + _loc_5;
_loc_36 = _loc_33 ^ _loc_34 ^ _loc_35;
_loc_21 = _loc_21 + _loc_36;
_loc_37 = (_loc_21 << 4) + _loc_6;
_loc_38 = _loc_21 + _loc_23;
_loc_39 = _loc_21 >>> 5;
_loc_40 = _loc_39 + _loc_7;
_loc_41 = _loc_37 ^ _loc_38 ^ _loc_40;
_loc_22 = _loc_22 + _loc_41;
_loc_24++;
}
_loc_25 = _loc_21 >>> 0 & 255;
_loc_26 = _loc_21 >>> 8 & 255;
_loc_27 = _loc_21 >>> 16 & 255;
_loc_28 = _loc_21 >>> 24 & 255;
_loc_29 = _loc_22 >>> 0 & 255;
_loc_30 = _loc_22 >>> 8 & 255;
_loc_31 = _loc_22 >>> 16 & 255;
_loc_32 = _loc_22 >>> 24 & 255;
_loc_11 = _loc_11 + getCharFromAscii(_loc_21 >>> 0 & 255);
_loc_11 = _loc_11 + getCharFromAscii(_loc_21 >>> 8 & 255);
_loc_11 = _loc_11 + getCharFromAscii(_loc_21 >>> 16 & 255);
_loc_11 = _loc_11 + getCharFromAscii(_loc_21 >>> 24 & 255);
_loc_11 = _loc_11 + getCharFromAscii(_loc_22 >>> 0 & 255);
_loc_11 = _loc_11 + getCharFromAscii(_loc_22 >>> 8 & 255);
_loc_11 = _loc_11 + getCharFromAscii(_loc_22 >>> 16 & 255);
_loc_11 = _loc_11 + getCharFromAscii(_loc_22 >>> 24 & 255);
_loc_12 = _loc_12 + _loc_3;
}
_loc_11 = _loc_11 + param1.substr(8, 8);
return _loc_11;
}// end function
public static function Str2Hex(param1:String) : String
{
var _loc_7:Number = NaN;
var _loc_8:Number = NaN;
var _loc_2:String = "0123456789abcdef";
var _loc_3:* = _loc_2.split("");
var _loc_4:* = param1.split("");
var _loc_5:* = new Array(2 * _loc_4.length + 1);
var _loc_6:* = _loc_4.length;
var _loc_9:int = 0;
while (_loc_9 < _loc_6)
{
if (_loc_9 < 8)
{
_loc_7 = _loc_4[_loc_9].charCodeAt(0) & 15;
_loc_8 = _loc_4[_loc_9].charCodeAt(0) >>> 4 & 15;
_loc_5[2 * _loc_9] = _loc_3[_loc_4[_loc_9].charCodeAt(0) & 15];
_loc_5[2 * _loc_9 + 1] = _loc_3[_loc_4[_loc_9].charCodeAt(0) >>> 4 & 15];
}
else
{
_loc_5[2 * _loc_9] = _loc_3[Math.floor(Math.random() * 15)];
_loc_5[2 * _loc_9 + 1] = _loc_3[Math.floor(Math.random() * 15)];
}
_loc_9++;
}
return _loc_5.join("");
}// end function
public static function time2String(param1:Number) : String
{
var _loc_8:Number = NaN;
var _loc_2:* = new Array(8);
var _loc_3:* = new ByteArray();
var _loc_4:String = "0123456789abcdef";
var _loc_5:* = "0123456789abcdef".split("");
var _loc_6:uint = 0;
while (_loc_6 < 8)
{
_loc_8 = param1 >>> 28 - _loc_6 % 8 * 4 & 15;
_loc_2[_loc_6] = _loc_5[_loc_8];
_loc_6 = _loc_6 + 1;
}
var _loc_7:* = _loc_2.join("");
return _loc_2.join("");
}// end function
public static function constructKey(param1:Number) : String
{
var _loc_2:* = time2String(param1);
var _loc_3:* = _loc_2.split("");
if (_loc_3.length < 16)
{
_loc_2 = add(_loc_2, 16 - _loc_3.length);
}
var _loc_4:String = "";
var _loc_5:* = Utils.SERVER_KEY;
if (Utils.SERVER_KEY.length < 16)
{
_loc_5 = add(_loc_5, 16 - _loc_5.length);
}
_loc_4 = Utils.encrypt(_loc_2, _loc_5);
_loc_4 = Utils.Str2Hex(_loc_4);
return _loc_4;
}// end function
public static function add(param1:String, param2:Number) : String
{
var _loc_3:Number = 0;
while (_loc_3 < param2)
{
param1 = param1 + getCharFromAscii(0);
_loc_3 = _loc_3 + 1;
}
return param1;
}// end function
from youku-lixian.
同求,你目前的这个算法已经不能使用了。
from youku-lixian.
Related Issues (20)
- 有几个问题想请教下 HOT 1
- acfun.py貌似挂了
- 修复acfun.py下载的代码 HOT 1
- Mac版 硕鼠(FLVCD)下载器 拼接用了flv(mp4)_join.py HOT 3
- 下载youku视频失败,似乎是优酷返回的json中segs对应值为空导致 HOT 2
- http://v.youku.com/v_show/id_XNTY3MzMzNDcy.html
- 需求:91porn
- 搜狐 土豆的下载地址有问题我重新分析了下 HOT 1
- Please, add atom udta for mp4_join.py HOT 3
- 好多失效了哦,不知道作者是否还持续更新呢?
- 好多失效了哦,不知道作者是否还持续更新呢? HOT 3
- 基本上都报错urllib2.URLError: <urlopen error [Errno 61] Connection refused>
- Youku password porctect video donwload unsuccessful
- 优酷视频超过13个视频源不能全部下载的问题
- 如果想用java实现可行吗 HOT 1
- thanks for the repo
- 项目是不是不更新了? HOT 1
- 的
- 无法下载优酷视频,提醒AttributeError: 'NoneType' object has no attribute 'group' HOT 5
- bilibili issus
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from youku-lixian.