谁能看懂这段代码?
我只知道这是一段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;
}
}
哥哥,你这是要干什么 昏迷,别这么叫我。我在搞冒险岛的服务端。 {:3_41:}什么?
页:
[1]