WPE|52wpe|我爱WPE

 找回密码
 注册会员
搜索
  • 2234查看
  • 3回复

主题

好友

22

积分

新手上路

发表于 2009-11-7 23:15:14 |显示全部楼层
  我只知道这是一段JAVA的代码而已,

如果有高手能看懂的话加我QQ:270977560

  1. package net.sf.odinms.tools;

  2. /public class MapleCustomEncryption {
  3.        
  4.                 public static byte[] encryptData(byte data[]) {

  5.                 for (int j = 0; j < 6; j++) {
  6.                         byte remember = 0;
  7.                         byte dataLength = (byte) (data.length & 0xFF);
  8.                         // printByteArray(data);
  9.                         if (j % 2 == 0) {
  10.                                 for (int i = 0; i < data.length; i++) {
  11.                                         byte cur = data[i];
  12.                                         cur = BitTools.rollLeft(cur, 3);
  13.                                         cur += dataLength;
  14.                                         cur ^= remember;
  15.                                         remember = cur;
  16.                                         cur = BitTools.rollRight(cur, (int)dataLength & 0xFF);
  17.                                         cur = ((byte) ((~cur) & 0xFF));
  18.                                         cur += 0x48;
  19.                                         dataLength--;
  20.                                         data[i] = cur;
  21.                                 }
  22.                         } else {
  23.                                 for (int i = data.length - 1; i >= 0; i--) {
  24.                                         byte cur = data[i];
  25.                                         cur = BitTools.rollLeft(cur, 4);
  26.                                         cur += dataLength;
  27.                                         cur ^= remember;
  28.                                         remember = cur;
  29.                                         cur ^= 0x13;
  30.                                         cur = BitTools.rollRight(cur, 3);
  31.                                         dataLength--;
  32.                                         data[i] = cur;
  33.                                 }
  34.                         }
  35.                         //System.out.println("enc after iteration " + j + ": " + HexTool.toString(data) + " al: " + al);
  36.                 }
  37.                 return data;
  38.         }

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

  45.                         if (j % 2 == 0) {
  46.                                 for (int i = 0; i < data.length; i++) {
  47.                                         byte cur = data[i];
  48.                                         cur -= 0x48;
  49.                                         cur = ((byte) ((~cur) & 0xFF));
  50.                                         cur = BitTools.rollLeft(cur, (int)dataLength & 0xFF);
  51.                                         nextRemember = cur;
  52.                                         cur ^= remember;
  53.                                         remember = nextRemember;
  54.                                         cur -= dataLength;
  55.                                         cur = BitTools.rollRight(cur, 3);
  56.                                         data[i] = cur;
  57.                                         dataLength--;
  58.                                 }
  59.                         } else {
  60.                                 for (int i = data.length - 1; i >= 0; i--) {
  61.                                         byte cur = data[i];
  62.                                         cur = BitTools.rollLeft(cur, 3);
  63.                                         cur ^= 0x13;
  64.                                         nextRemember = cur;
  65.                                         cur ^= remember;
  66.                                         remember = nextRemember;
  67.                                         cur -= dataLength;
  68.                                         cur = BitTools.rollRight(cur, 4);
  69.                                         data[i] = cur;
  70.                                         dataLength--;
  71.                                 }
  72.                         }
  73.                         //System.out.println("dec after iteration " + j + ": " + HexTool.toString(data));
  74.                 }
  75.                 return data;
  76.         }
  77. }
复制代码

主题

好友

864

积分

高级会员

发表于 2009-11-27 22:51:07 |显示全部楼层
哥哥,你这是要干什么
回复

使用道具 举报

主题

好友

22

积分

新手上路

发表于 2010-1-20 02:46:37 |显示全部楼层
昏迷,  别这么叫我。  我在搞冒险岛的服务端。
回复

使用道具 举报

主题

好友

108

积分

注册会员

发表于 2010-2-22 11:37:48 |显示全部楼层
什么?
回复

使用道具 举报

快速发帖

您需要登录后才可以回帖 登录 | 注册会员

手机版|Archiver|WPE|52wpe|我爱WPE ( 闽ICP备15009081号 )

GMT+8, 2024-5-9 04:24 , Processed in 0.067799 second(s), 16 queries .

返回顶部