乐视网tkey算法频繁变动,如何才能获得她算法的源码,以不变应万变?
本文只用于技术交流,提醒各位尊重网站版权,请勿用于其它用途,否则后果自负!
private function getURL(param1:String) : String { var _loc_2:* = param1 + String(metadata.vid); if (model.config.flashvars.flashvars.hasOwnProperty("platid")) { _loc_2 = _loc_2 + ("&platid=" + model.config.flashvars.flashvars.platid); } else { _loc_2 = _loc_2 + "&platid=1"; } if (model.config.flashvars.flashvars.hasOwnProperty("splatid")) { _loc_2 = _loc_2 + ("&splatid=" + model.config.flashvars.flashvars.splatid); } else { _loc_2 = _loc_2 + "&splatid=101"; } _loc_2 = _loc_2 + "&format=1"; if (model.config.flashvars.flashvars.hasOwnProperty("nextvid")) { _loc_2 = _loc_2 + ("&nextvid=" + model.config.flashvars.flashvars.nextvid); } _loc_2 = _loc_2 + ("&tkey=" + timestamp.calcTimeKey()); _loc_2 = _loc_2 + ("&domain=" + encodeURIComponent(BrowserUtil.domain)); return _loc_2; }// end function
public function calcTimeKey() : String { var _loc_1:* = this.lib.calcTimeKey(this.tm); return _loc_1; }// end function再以"calcTimeKey"为关键字,查找包括它的AS文件。很可惜,找出来的只有调用,没有具体函数定义。那Letv将获得tkey的方法定义在哪边?
private function ror(param1:int, param2:int) : int { ... }// end function public function calcTimeKey(param1:int) : int { ... }// end function
int GenerateKeyRor(int value, int key) { int i = 0; while (i < key) { value = (static_cast<unsigned int>(value) >> 1) + ((value & 1) << 31); ++i; } return value; } string GenerateKey(int stime) { int key = 773625421; std::stringstream tkey; int value = GenerateKeyRor(stime, key%13); value ^= key; value = GenerateKeyRor(value, key%17); tkey << value; return tkey.str(); }