吧里有牛人么?可以将这个as3.0脚本转成python么?
actionscript吧
全部回复
仅看楼主
level 1
lcplj123 楼主
public static function streamAuth(param1:String, param2:String, param3:String, param4:int)
{
var _loc_16:* = 0;
var _loc_17:* = 0;
var _loc_18:* = 0;
var _loc_19:* = 0;
var _loc_21:* = null;
var _loc_22:* = null;
var _loc_23:* = null;
var _loc_24:* = null;
var _loc_25:* = null;
var _loc_5:* = 4;
param2 = getMD5(param2 != "" ? (param2) : ("12345678"));
var _loc_6:* = param2;
var _loc_7:* = getMD5(_loc_6.substring(0, 16));
var _loc_8:* = getMD5(_loc_6.substring(16, 32));
var _loc_9:* = param1;
var _loc_10:* = _loc_5 > 0 ? (param3 == "DECODE" ? (_loc_9.substring(0, _loc_5)) : (getMD5(String(new Date().getTime() / 1000)).substring(32 - _loc_5))) : ("");
var _loc_11:* = _loc_7 + getMD5(_loc_7 + _loc_10);
var _loc_12:* = _loc_11.length;
param1 = param3 == "DECODE" ? (String(Base64Util.decodeToByteArray(_loc_9.substring(_loc_5)))) : ((param4 > 0 ? (param4 + StreamBase.int(new Date().getTime() / 1000)) : ("0000000000")) + "" + getMD5(param1 + _loc_8).substring(0, 16) + param1);
var _loc_13:* = _loc_9.length;
var _loc_14:* = [];
var _loc_15:* = [];
_loc_16 = 0;
while (_loc_16 < 128)
{
_loc_14[_loc_16] = _loc_16;
_loc_15[_loc_16] = _loc_11.charCodeAt(_loc_16 % _loc_12) & 255;
_loc_16++;
}
var _loc_26:* = 0;
_loc_16 = 0;
_loc_17 = _loc_26;
while (_loc_16 < 128)
{
_loc_17 = (_loc_17 + _loc_14[_loc_16] + _loc_15[_loc_16]) % 128;
_loc_19 = _loc_14[_loc_16];
_loc_14[_loc_16] = _loc_14[_loc_17];
_loc_14[_loc_17] = _loc_19;
_loc_16++;
}
var _loc_20:* = new ByteArray();
var _loc_26:* = 0;
_loc_16 = 0;
_loc_17 = _loc_26;
_loc_18 = _loc_26;
while (_loc_16 < _loc_13)
{
_loc_18 = (_loc_18 + 1) % 128;
_loc_17 = (_loc_17 + _loc_14[_loc_18]) % 128;
_loc_19 = _loc_14[_loc_18];
_loc_14[_loc_18] = _loc_14[_loc_17];
_loc_14[_loc_17] = _loc_19;
_loc_20.writeByte(_loc_9.charCodeAt(_loc_16) & 255 ^ _loc_14[(_loc_14[_loc_18] + _loc_14[_loc_17]) % 128]);
_loc_16++;
}
if (param3 == "DECODE")
{
var _loc_26:* = String(_loc_20);
_loc_25 = String(_loc_20);
_loc_24 = _loc_26;
_loc_23 = _loc_26;
_loc_22 = _loc_26;
_loc_21 = _loc_26;
if ((int(_loc_22.substring(0, 10)) == 0 || int(_loc_23.substring(0, 10)) - int(new Date().getTime() / 1000) > 0) && _loc_24.substring(10, 26) == getMD5(_loc_25.substring(26) + _loc_8).substring(0, 16))
{
return _loc_21.substring(26);
}
return "";
}
else
{
return _loc_10 + Base64Util.encodeByteArray(_loc_20);
}
}// end function
private static function getMD5(param1:String)
{
return MD5.hash(param1);
}// end function
2015年08月23日 10点08分 1
1