超级狐狸。 发表于 2009-11-7 23:15:14

谁能看懂这段代码?

我只知道这是一段JAVA的代码而已,

如果有高手能看懂的话加我QQ:270977560
package net.sf.odinms.tools;

/public class MapleCustomEncryption {
       
                public static byte[] encryptData(byte data[]) {

                for (int j = 0; j < 6; j++) {
                        byte remember = 0;
                        byte dataLength = (byte) (data.length & 0xFF);
                        // printByteArray(data);
                        if (j % 2 == 0) {
                                for (int i = 0; i < data.length; i++) {
                                        byte cur = data;
                                        cur = BitTools.rollLeft(cur, 3);
                                        cur += dataLength;
                                        cur ^= remember;
                                        remember = cur;
                                        cur = BitTools.rollRight(cur, (int)dataLength & 0xFF);
                                        cur = ((byte) ((~cur) & 0xFF));
                                        cur += 0x48;
                                        dataLength--;
                                        data = cur;
                                }
                        } else {
                                for (int i = data.length - 1; i >= 0; i--) {
                                        byte cur = data;
                                        cur = BitTools.rollLeft(cur, 4);
                                        cur += dataLength;
                                        cur ^= remember;
                                        remember = cur;
                                        cur ^= 0x13;
                                        cur = BitTools.rollRight(cur, 3);
                                        dataLength--;
                                        data = cur;
                                }
                        }
                        //System.out.println("enc after iteration " + j + ": " + HexTool.toString(data) + " al: " + al);
                }
                return data;
        }

-------------------------------------------------------
        public static byte[] decryptData(byte data[]) {
                for (int j = 1; j <= 6; j++) {
                        byte remember = 0;
                        byte dataLength = (byte) (data.length & 0xFF);
                        byte nextRemember = 0;

                        if (j % 2 == 0) {
                                for (int i = 0; i < data.length; i++) {
                                        byte cur = data;
                                        cur -= 0x48;
                                        cur = ((byte) ((~cur) & 0xFF));
                                        cur = BitTools.rollLeft(cur, (int)dataLength & 0xFF);
                                        nextRemember = cur;
                                        cur ^= remember;
                                        remember = nextRemember;
                                        cur -= dataLength;
                                        cur = BitTools.rollRight(cur, 3);
                                        data = cur;
                                        dataLength--;
                                }
                        } else {
                                for (int i = data.length - 1; i >= 0; i--) {
                                        byte cur = data;
                                        cur = BitTools.rollLeft(cur, 3);
                                        cur ^= 0x13;
                                        nextRemember = cur;
                                        cur ^= remember;
                                        remember = nextRemember;
                                        cur -= dataLength;
                                        cur = BitTools.rollRight(cur, 4);
                                        data = cur;
                                        dataLength--;
                                }
                        }
                        //System.out.println("dec after iteration " + j + ": " + HexTool.toString(data));
                }
                return data;
        }
}

热情特 发表于 2009-11-27 22:51:07

哥哥,你这是要干什么

超级狐狸。 发表于 2010-1-20 02:46:37

昏迷,别这么叫我。我在搞冒险岛的服务端。

小雅子 发表于 2010-2-22 11:37:48

{:3_41:}什么?
页: [1]
查看完整版本: 谁能看懂这段代码?