Actionscript
Kod
public static function decrypt32byte(param1:String, param2:int, param3:int, param4:int = 11, param5:int = 77213, param6:int = 81371, param7:int = 17, param8:int = 92717, param9:int = 192811) : String
{
var _loc_17:int = 0;
var _loc_18:int = 0;
var _loc_19:String = null;
var _loc_20:String = null;
var _loc_10:* = new Array();
_loc_10 = string2bin(param1);
var _loc_11:int = 256;
var _loc_12:* = new Array();
var _loc_13:int = 0;
while (true)
{
param2 = (param2 * param4 + param5) % param6;
param3 = (param3 * param7 + param8) % param9;
_loc_12[_loc_13] = (param2 + param3) % (_loc_11 * 0.5);
_loc_13++;
}
_loc_13 = _loc_11;
while (true)
{
_loc_17 = _loc_12[_loc_13];
_loc_18 = _loc_13 % (_loc_11 * 0.5);
_loc_19 = _loc_10[_loc_17];
_loc_10[_loc_17] = _loc_10[_loc_18];
_loc_10[_loc_18] = _loc_19;
_loc_13 = _loc_13 - 1;
}
_loc_13 = 0;
while (true)
{
_loc_10[_loc_13] = _loc_10[_loc_13] ^ _loc_12[_loc_13 + _loc_11] & 1;
_loc_13++;
}
var _loc_14:* = _loc_10.join("");
var _loc_15:* = new Array();
_loc_13 = 0;
while (true)
{
_loc_20 = _loc_14.substr(_loc_13, 4);
_loc_15.push(_loc_20);
_loc_13 = _loc_13 + 4;
}
var _loc_16:* = bin2String(_loc_15);
return bin2String(_loc_15).toString();
}// end function
private static function string2bin(param1:String) : Array
{
var _loc_4:String = null;
var _loc_2:* = new Array();
var _loc_3:int = 0;
while (true)
{
_loc_4 = param1.charAt(_loc_3);
_loc_3++;
}
_loc_2 = _loc_2.join("").split("");
return _loc_2;
}// end function
private static function bin2String(param1:Array) : String
{
var _loc_4:String = null;
var _loc_2:* = new Array();
var _loc_3:int = 0;
while (true)
{
_loc_4 = param1[_loc_3];
_loc_3++;
}
return _loc_2.join("");
}// end function
{
var _loc_17:int = 0;
var _loc_18:int = 0;
var _loc_19:String = null;
var _loc_20:String = null;
var _loc_10:* = new Array();
_loc_10 = string2bin(param1);
var _loc_11:int = 256;
var _loc_12:* = new Array();
var _loc_13:int = 0;
while (true)
{
param2 = (param2 * param4 + param5) % param6;
param3 = (param3 * param7 + param8) % param9;
_loc_12[_loc_13] = (param2 + param3) % (_loc_11 * 0.5);
_loc_13++;
}
_loc_13 = _loc_11;
while (true)
{
_loc_17 = _loc_12[_loc_13];
_loc_18 = _loc_13 % (_loc_11 * 0.5);
_loc_19 = _loc_10[_loc_17];
_loc_10[_loc_17] = _loc_10[_loc_18];
_loc_10[_loc_18] = _loc_19;
_loc_13 = _loc_13 - 1;
}
_loc_13 = 0;
while (true)
{
_loc_10[_loc_13] = _loc_10[_loc_13] ^ _loc_12[_loc_13 + _loc_11] & 1;
_loc_13++;
}
var _loc_14:* = _loc_10.join("");
var _loc_15:* = new Array();
_loc_13 = 0;
while (true)
{
_loc_20 = _loc_14.substr(_loc_13, 4);
_loc_15.push(_loc_20);
_loc_13 = _loc_13 + 4;
}
var _loc_16:* = bin2String(_loc_15);
return bin2String(_loc_15).toString();
}// end function
private static function string2bin(param1:String) : Array
{
var _loc_4:String = null;
var _loc_2:* = new Array();
var _loc_3:int = 0;
while (true)
{
_loc_4 = param1.charAt(_loc_3);
_loc_3++;
}
_loc_2 = _loc_2.join("").split("");
return _loc_2;
}// end function
private static function bin2String(param1:Array) : String
{
var _loc_4:String = null;
var _loc_2:* = new Array();
var _loc_3:int = 0;
while (true)
{
_loc_4 = param1[_loc_3];
_loc_3++;
}
return _loc_2.join("");
}// end function
Kod Php
function decrypt32byte($str, $key1, $key2) { for($reg3=0; $reg3<strlen($str); $reg3++) { $reg0 = $str[$reg3]; switch($reg0) { case '0': $reg1[] = '0000'; break; case '1': $reg1[] = '0001'; break; case '2': $reg1[] = '0010'; break; case '3': $reg1[] = '0011'; break; case '4': $reg1[] = '0100'; break; case '5': $reg1[] = '0101'; break; case '6': $reg1[] = '0110'; break; case '7': $reg1[] = '0111'; break; case '8': $reg1[] = '1000'; break; case '9': $reg1[] = '1001'; break; case 'a': $reg1[] = '1010'; break; case 'b': $reg1[] = '1011'; break; case 'c': $reg1[] = '1100'; break; case 'd': $reg1[] = '1101'; break; case 'e': $reg1[] = '1110'; break; case 'f': $reg1[] = '1111'; break; } } for($reg3=0; $reg3<384; $reg3++) { $key1 = ($key1 * 11 + 77213) % 81371; $key2 = ($key2 * 17 + 92717) % 192811; $reg6[] = ($key1 + $key2) % 128; } for($reg3=256; $reg3>=0; $reg3--) { $reg5 = $reg6[$reg3]; $reg4 = $reg3 % 128; $reg8 = $reg1[$reg5]; $reg1[$reg5] = $reg1[$reg4]; $reg1[$reg4] = $reg8; } for($reg3=0; $reg3<128; $reg3++) $reg1[$reg3] = $reg1[$reg3] ^ ($reg6[$reg3+256] & 1); $reg12 = $reg1; for($reg3=0; $reg3<strlen($reg12); $reg3+=4) { } for($reg3=0; $reg3<count($reg7);$reg3++) { $reg0 = $reg7[$reg3]; switch($reg0) { case '0000': $reg2[] = '0'; break; case '0001': $reg2[] = '1'; break; case '0010': $reg2[] = '2'; break; case '0011': $reg2[] = '3'; break; case '0100': $reg2[] = '4'; break; case '0101': $reg2[] = '5'; break; case '0110': $reg2[] = '6'; break; case '0111': $reg2[] = '7'; break; case '1000': $reg2[] = '8'; break; case '1001': $reg2[] = '9'; break; case '1010': $reg2[] = 'a'; break; case '1011': $reg2[] = 'b'; break; case '1100': $reg2[] = 'c'; break; case '1101': $reg2[] = 'd'; break; case '1110': $reg2[] = 'e'; break; case '1111': $reg2[] = 'f'; break; } } }