62,614
社区成员
发帖
与我相关
我的任务
分享
public static void decode(byte[] in, byte[] out, int password) {
int len = in.length;
int seed = password ^ 0x6b3adbd0;
for (int i = 0 ; i < len; ++i) {
byte a = (byte)(in[i] & 0xf);
byte b = (byte)(in[i] & 0xf0);
a = (byte)(((a << 4) ^ seed) & 0xf0);
b = (byte)((((((int)b) << (20-4)) ^ seed) >> 20) & 0xf);
out[i] = (byte)(a | b);
seed = (seed * 608347 ^ seed ^ in[i]);
}
}