private static void eighth(byte[] target){//[5, 4, 3, 8, 6, 0, 12, 10, 10, 2, 15]
byte abyte0[] = new byte[11];
long l3 = (target[9] << 4) + target[10]; //47
for(int i = 0; i < 9; i++)
{
long l5 = 9L * l3 + (long)i;//423
long l6;
long l7 = ((l6 = 0x7fffffffL) - 1L) / 256L;//8388607
long l8 = (l6 << 1) + 2L;//4294967296
long l9 = 16807L;//16807
long l10 = 1L;
for(int i1 = 0; (long)i1 < l5 + 12L; i1++)
{
if((l10 = (int)(l10 *= l9)) < 0L)
l10 += l8;
l10 %= l6;
}
byte byte1;
byte1 = (byte)(int)(l10 / l7);
abyte0[i] = (byte)(target[i] - byte1 & 0xf);//[0, 10, 7, 5, 0, 7, 1, 1, 11, 0, 0];
}
}
byte参数 target 实际值 =[5, 4, 3, 8, 6, 0, 12, 10, 10, 2, 15],
经该方法运算后 abyte0 =[0, 10, 7, 5, 0, 7, 1, 1, 11, 0, 0];
现在要根据 abyte0 =[0, 10, 7, 5, 0, 7, 1, 1, 11, 0, 0] 逆向算出 target,数组最后两位可以不管。