.................... (200分)

B

bluely

Unregistered / Unconfirmed
GUEST, unregistred user!
.....................
 
function key(num: LongWord): LongWord;
const
Key2: Array [0 .. 7] Of Word =
($0007, $0040, $b553, $0076,
$1db7, $04c1, $4e63, $100d);
Key3: Array [0 .. 15] Of Byte =
($01, $04, $08, $0d, $13, $16, $19, $1c,
$20, $25, $29, $2c, $31, $34, $3b, $3e);
kk1: LongWord = 0;
kk4: LongWord = 0;
var
kk3: Byte;
kk2: Array [0 .. 7] Of Byte;
t1, kk8, t5: LongWord;
kk9, t8, t10: Word;
i, j, k, ssii, bpj2, bpj4, t2, t3, abc: Integer;
begin
for abc := 0 to 1 do begin
for i := 0 to 7 do
kk2 := (num Shr (4 * i)) And $f;
for i := 0 to 7 do
for j := 0 to i do begin
kk3 := kk2 And 1;
kk3 := kk3 Xor (((kk2 Shr 1) And 1) And (key3 And 1));
kk3 := kk3 Xor (((kk2 Shr 2) And 1) And ((key3 Shr 1) And 1))

kk3 := kk3 Xor (((kk2 Shr 3) And 1) And ((key3 Shr 2) And 1))

kk3 := kk3 Xor ((((kk2 Shr 1) And 1) And ((kk2 Shr 2) And 1)) And ((key3 Shr 3) And 1))

kk3 := kk3 Xor ((((kk2 Shr 1) And 1) And ((kk2 Shr 3) And 1)) And ((key3 Shr 4) And 1));
kk3 := kk3 Xor ((((kk2 Shr 1) And 1) And ((kk2 Shr 2) And 1)) And ((kk2 Shr 3) And 1));
kk3 := kk3 Xor 1;
kk2 := kk2 Shr 1

if kk3 = 1 then
kk2 := kk2 Xor 8

end;
kk4 := 0;
for i := 0 to 7 do begin
kk1 := kk2[7 - i];
kk4 := kk4 or (kk1 Shl (4 * (7 - i)));
end;
kk8 := kk4;
for i := 0 to $30 do begin
ssii := Ord(((kk8 Shr 16) And $8000) <> 0);
bpj2 := (kk8 Shr 16) And Key2[(i Mod 4) * 2 + 1];
bpj4 := (kk8 Mod $10000) And Key2[(i Mod 4) * 2];
t1 := kk8 And $80000000;
kk8 := kk8 Shr 1;
kk8 := kk8 or t1;
kk9 := kk8 Shr 16;
kk8 := kk8 Shl 16;
kk8 := kk8 or kk9;
t3 := 0;
for t2 := 0 to $1f do begin
t5 := t5 And $ffff0000;
t5 := (t5 And $0000ffff) or ((bpj4 And 1) Shl 16);
if t5 And $ffff0000 <> 0 then
t3 := t3 Xor 1;
t5 := (t5 And $ffff0000) or bpj2;
t8 := (t5 And $0000ffff) And $8000;
t10 := (t5 And $0000ffff) And 1;
t5 := (t5 And $ffff0000) or ((t5 And $0000ffff) Shr 1);
t5 := (t5 And $0000ffff) or ((t5 Shr 17) Shl 16);
t5 := t5 or (t8 And $0000ffff);
t5 := t5 or ((t10 Shl 31) And $ffff0000)

bpj2 := t5 And $0000ffff

bpj4 := t5 Shr 16

end;
ssii := ssii Xor t3;
if ssii <> 0 then begin
kk8 := (kk8 And $0000ffff) or (((kk8 Shr 16) Xor 0) Shl 16);
kk8 := (kk8 And $ffff0000) or ((kk8 And $0000ffff) Xor $8000);
end;
kk9 := kk8 And $0000ffff;
kk8 := kk8 Shr 16

kk8 := kk8 or (kk9 Shl 16);
end;
num := kk8

end;
Result := num;
end;
 
........................
 
顶部