AS3到java对话

时间:2014-05-22 12:28:03

标签: java actionscript-3 converter

我有这个需要转换的AS3类:

public class decrypt {

    static const each:Array = new Array([-1472138623, 878922361, -1110917592, 1826394737, 1030846636, 217728939, -379917437, -275132097, 1767307091, -1195948886, -682829029, 95838200, -2061993620, 149857669], [-1020757973, -2077877836, 501378647, -259185914, -552298551, -2022558100, 289023736, -769360169, 290347576, 2140291152, 289023736, -769360169, -1624536668, -554327313, -1471319910, 1589545115, -1818914025, -690206676, 400482224, 1628417421, -39094471, -1572489861, -1233920875, 929897812, 1510659349, 53240083, 1392835656, 2121191360, -653167482, -1507569495, -1020971252, -163502559], [-1342432177, 1704770503, -1713368805, 639561550, 1540369766, 1219510839, -527278624, 1281025686, 336464845, 246475111, 5783626, -1178158347, 1131157072, -618389383]);
    static const each2:Array = new Array([1465852829, 35371303, -307080369, 1689322742], [-850493536, -1811866893, 1569332413, 2134615290], [-15985840, -327516657, 258826066, 671668905]);

    public static function decrypt(_arg1:int, _arg2:int):String{
        var _local3:String;
        var _local4:int;
        var _local5:int;
        var _local6:int;
        var _local7:int;
        var _local8:*;
        var _local9:*;
        _local3 = "";
        _local4 = 0;
        _local5 = each[((_arg1 - 5) ^ -614)].length;
        while (_local4 < _local5) {
            _local6 = int(each[((_arg1 - 5) ^ -614)][_local4]);
            _local4++;
            _local7 = int(each[((_arg1 - 5) ^ -614)][_local4]);
            _local8 = 2654435769;
            _local9 = 84941944608;
            while (_local9 != 0) {
                _local7 = (_local7 - ((((_local6 << 4) ^ (_local6 >>> 5)) + _local6) ^ (_local9 + int(each2[((_arg2 + 3) ^ -719)][((_local9 >>> 11) & 3)]))));
                _local9 = (_local9 - _local8);
                _local6 = (_local6 - ((((_local7 << 4) ^ (_local7 >>> 5)) + _local7) ^ (_local9 + int(each2[((_arg2 + 3) ^ -719)][(_local9 & 3)]))));
            };
            _local3 = (_local3 + (String.fromCharCode(_local6) + String.fromCharCode(_local7)));
            _local4++;
        };
        if (_local3.charCodeAt((_local3.length - 1)) == 0){
            _local3 = _local3.substring(0, (_local3.length - 1));
        };
        return (_local3);
    }

}

我创建了这个java类

public static String koodi(int _arg1, int _arg2) {
        long[][] each = new long[][] {{-1472138623l, 878922361l, -1110917592l, 1826394737l, 1030846636l, 217728939l, -379917437l, -275132097l, 1767307091l, -1195948886l, -682829029l, 95838200l, -2061993620l, 149857669l}, {-1020757973l, -2077877836l, 501378647l, -259185914l, -552298551l, -2022558100l, 289023736l, -769360169l, 290347576l, 2140291152l, 289023736l, -769360169l, -1624536668l, -554327313l, -1471319910l, 1589545115l, -1818914025l, -690206676l, 400482224l, 1628417421l, -39094471l, -1572489861l, -1233920875l, 929897812l, 1510659349l, 53240083l, 1392835656l, 2121191360l, -653167482l, -1507569495l, -1020971252l, -163502559l}, {-1342432177l, 1704770503l, -1713368805l, 639561550l, 1540369766l, 1219510839l, -527278624l, 1281025686l, 336464845l, 246475111l, 5783626l, -1178158347l, 1131157072l, -618389383l}};
        long[][] moi = new long[][]{{1465852829l, 35371303l, -307080369l, 1689322742l}, {-850493536l, -1811866893l, 1569332413l, 2134615290l}, {-15985840l, -327516657l, 258826066l, 671668905l}};
        String _local3;
        int _local4;
        int _local5;
        long _local6;
        long _local7;
        long _local8;
        long _local9;
        _local3 = "";
        _local4 = 0;
        _local5 = each[((_arg1 - 5) ^ -614)].length;
        while (_local4 < _local5) {
            _local6 = each[((_arg1 - 5) ^ -614)][_local4];
            _local4++;
            _local7 = each[((_arg1 - 5) ^ -614)][_local4];
            _local8 = 2654435769l;
            _local9 = 84941944608l;
            while (_local9 != 0) {
                _local7 = (_local7 - ((((_local6 << 4) ^ (_local6 >>> 5)) + _local6) ^ (_local9 + moi[((_arg2 + 3) ^ -719)][(int)((_local9 >>> 11) & 3)])));
                _local9 = _local9 - _local8;
                _local6 = (_local6 - ((((_local7 << 4) ^ (_local7 >>> 5)) + _local7) ^ (_local9 + moi[((_arg2 + 3) ^ -719)][(int)(_local9 & 3)])));
            }
            System.out.println(_local6 + ",  " + _local7);
            _local3 = (_local3 + (Character.toString((char)_local6) + Character.toString((char)_local7)));
            _local4++;
        }
        if (_local3.charAt((_local3.length() - 1)) == 0){
            _local3 = _local3.substring(0, (_local3.length() - 1));
        }
        return (_local3);
    }

}

但输出字符串很奇怪。我做了一些调试,并在调用值为-609和-722的函数时找到每个字符的数值: -677857860876954496,5754082936929584792

6046835156833219103,8754941294573536069

7069447582518148541,4294064619892486743

-2772733404575532986,-8784792872554981235

-4217620190071583542,2359222666259250776

2177633633905814216,3452433562470547029

-264733541191837309,130​​5785365920322607

无论如何都要运行AS3代码来检查字符串值是否匹配?

0 个答案:

没有答案