Xipher
Сообщений: 1
Оценки: 0
Присоединился: 2004-12-05 13:28:10
|
А вот код программы на TP, сделав отладку, и не могу найти ошибку:
// Коментарии // при компиляции комментарии убрать const strPwd:string=''HGSDYGDSLWREIUCJD938439402342''; //ключ
a:array[1..3,1..16] of integer =( (133,181,139,46,147,183,62,82,76,53,124,65,154,223 ,219,237), // номера зашифрованных файлов в шопе они выглядят так :|133|181|139…. (132,176,134,43,148,183,60,83,75,55,120,67,155,208 ,208,231), (130,181,140,45,148,182,58,82,76,48,118,71,153,216 ,210,0));
// сам код раскриптовки
var x,y,l,i,j,k:integer; sbox,rc4key:array[0..255] of integer;
Procedure Init; Begin x:=0; y:=0; for i:=0 to 255 do begin sbox:=i;<BR>rc4key:=ord(strPwd[(i mod length(strPwd))+1]);<BR>end;<BR><BR>k:=0;<BR>for i:=0 to 255 do<BR>begin<BR>k:=(k+sbox+rc4key) mod 256;<BR>j:=sbox;<BR>sbox:=sbox[k];<BR>sbox[k]:=j;<BR>end;<BR><BR>End;<BR><BR>begin<BR>writeln;writeln;writeln;writeln;writeln;writeln;<BR><BR>FOR l:=1 to 3 do<BR>Begin<BR>Init;<BR>WriteLn;<BR><BR>for i:=1 to 16 do<BR>Begin<BR>x:=(x+1) mod 256;<BR>y:=(y+sbox[x]) mod 256;<BR>k:=sbox[x];sbox[x]:=sbox[y];sbox[y]:=k;<BR>j:=(sbox[x]+sbox[y]) mod 256;<BR>write(chr(a[l,i] xor sbox[j]));<BR>End;<BR>End;
|