Przelozenie z Java na Delphi

0

Moglby mi ktos pomoc przelozyc to na delphi, bo nie znam sie na Javie ;-P

36          public void decrypt(ByteBuffer buf)
37 	        {
38 	                if (!_isEnabled)
39 	                        return;
40 	
41 	                final int sz = buf.remaining();
42 	                int temp = 0;
43 	                for (int i = 0; i < sz; i++)
44 	                {
45 	                        int temp2 = buf.get(i);
46 	                        buf.put(i, (byte)(temp2 ^ _key[i&15] ^ temp));
47 	                        temp = temp2;
48 	                }
49 	
50 	                int old = _key[8] &0xff;
51 	                old |= _key[9] << 8 &0xff00;
52 	                old |= _key[10] << 0x10 &0xff0000;
53 	                old |= _key[11] << 0x18 &0xff000000;
54
55 	                old += sz;
56 	
57 	                _key[8] = (byte)(old &0xff);
58 	                _key[9] = (byte)(old >> 0x08 &0xff);
59 	                _key[10] = (byte)(old >> 0x10 &0xff);
60 	                _key[11] = (byte)(old >> 0x18 &0xff);
61 	        }
62 	
63 	        public void encrypt(ByteBuffer buf)
64 	        {
65 	                if (!_isEnabled)
66 	                        return;
67 	
68 	                int temp = 0;
69 	                final int sz = buf.remaining();
70 	                for (int i = 0; i < sz; i++)
71 	                {
72 	                        int temp2 = buf.get(i);
73 	                        temp = temp2 ^ _key[i&15] ^ temp;
74 	                        buf.put(i, (byte) temp);
75 	                }
76 	
77 	                int old = _key[8] &0xff;
78 	                old |= _key[9] << 8 &0xff00;
79 	                old |= _key[10] << 0x10 &0xff0000;
80 	                old |= _key[11] << 0x18 &0xff000000;
81 	
82 	                old += sz;
83 	
84 	                _key[8] = (byte)(old &0xff);
85 	                _key[9] = (byte)(old >> 0x08 &0xff);
86 	                _key[10] = (byte)(old >> 0x10 &0xff);
87 	                _key[11] = (byte)(old >> 0x18 &0xff);
88 	        }
0

Pomyłka to nie jest nieznajomość Javy ale zwykłe lenistwo.

0

Napisalem nie znam Javy.. siedze tylko w delphi

0

Prosisz i masz :)

// ----------------- zmienne globalne
 var
_isEnabled : boolean;
_key : array [0..15] of integer ;
bufferTest : Array[00..15] of integer;


// ----------------- decrypt ----------
Procedure decrypt(var buf :array of integer);
var
sz,temp,temp2,old,i : integer;
begin
 if not (_isEnabled) then exit;

sz := High(buf);
temp := 0;

for I := 0 to sz  do    // Iterate
begin
temp2 := buf[i];
buf[i] := temp2 xor _key[i and 15] xor temp;
temp := temp2;
end;    // for


old := _key[8] and $ff;
old := old or  (_key[9] shl $8) and $ff00;
old := old or (_key[10] shl $10) and $ff0000;
old := old or (_key[11] shl $18)  and $ff000000;

old := old + sz;


_key[8] :=  old and $ff;
_key[9] :=  (old shr $08) and $ff;
_key[10] := (old shr $10) and $ff;
_key[11] := (old shr $18) and $ff;

end;

// ----------------- encrypt ----------
Procedure encrypt(var buf :array of integer);
var
sz,temp,temp2,old,i : integer;
begin
 if not (_isEnabled) then exit;

sz := High(buf);
temp := 0;

for I := 0 to sz  do    // Iterate
begin
temp2 := buf[i];
temp := temp2 xor _key[i and 15] xor temp;
buf[i] :=  temp;
end;    // for

old := _key[8] and $ff;
old := old or  (_key[9] shl $8)   and $ff00;
old := old or  (_key[10] shl $10) and $ff0000;
old := old or  (_key[11] shl $18) and $ff000000;

old := old + sz;

_key[8] := old and $ff;
_key[9] := (old shr $08) and $ff;
_key[10] := (old shr $10) and $ff;
_key[11] := (old shr $18) and $ff;
end;

// ----------------- test ----------

procedure TForm1.Button8Click(Sender: TObject);
var
i: Integer;
begin
for I := 0 to 15 do  bufferTest[i] := $a7;//jakies dane w buforze
for I := 0 to 15 do  _key[i] := $a2;      //jakis tam key

 _isEnabled := true;
 encrypt(bufferTest); //kodowanie

for I := 0 to 15 do  _key[i] := $a2;    //przywroc zmieniony key

 decrypt(bufferTest); //dekodowanie

end;
0

Nie wiem jak moge sie odwdzieczyc, naprawde wielkie dzieki ! :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1