ALLEGED RC4
Publicado por Mario (4 intervenciones) el 29/01/2009 15:52:56
Hola E.T. espero me disculpes por molestarte mucho
No se si recuerdas de el algoritmo ALLEGED RC4
que puse al foro para que me ayuden a traducir a delphi el lo he hecho en un boton y no me sale el resultado esperado
Es decir con este Key:= ‘sesamo’;
Y con este Mensaje := ‘d3Ir6’;
Debería arrojar este resultado EB-06-AE-F8-92
Pero me sale asi BD-DF-15-C8-CF
Esto es el codigo fuente
var
Form4: TForm4;
State: array [1..256] Of Integer;
X, Y, Index1, Index2, NMen, aux: Integer;
MensajeCifrado, Key, Mensaje: String;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
Var I: Integer;
begin
X := 0; Y := 0; Index1 := 1; Index2 := 0;
MensajeCifrado:='';
Key:='sesamo';
Mensaje:= 'd3Ir6';
for I:=0 to 255 do
State[I]:=I;
for I:=0 to 255 do
begin
Index2 := (ord(key[Index1])+ State[I]+ Index2 ) mod 256;
aux := State[I]; State[I]:= State[Index2]; State[Index2] := aux;
Index1 := (Index1+1) mod (length(Key));
end;
for I:=0 to length(Mensaje)-1 do
begin
X := (X+1) mod 256;
y := (State[X] + Y) mod 256;
aux := State[X]; State[X]:= State[Y]; State[Y] := aux;
NMen := ord(Mensaje[I+1]) XOR State[(State[X] + State[Y]) mod 256];
MensajeCifrado := MensajeCifrado + '-' + IntToHex(NMen,2);
Edit1.Text:= copy(MensajeCifrado,2,length(MensajeCifrado)-1);
End;
end;
No se si recuerdas de el algoritmo ALLEGED RC4
que puse al foro para que me ayuden a traducir a delphi el lo he hecho en un boton y no me sale el resultado esperado
Es decir con este Key:= ‘sesamo’;
Y con este Mensaje := ‘d3Ir6’;
Debería arrojar este resultado EB-06-AE-F8-92
Pero me sale asi BD-DF-15-C8-CF
Esto es el codigo fuente
var
Form4: TForm4;
State: array [1..256] Of Integer;
X, Y, Index1, Index2, NMen, aux: Integer;
MensajeCifrado, Key, Mensaje: String;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
Var I: Integer;
begin
X := 0; Y := 0; Index1 := 1; Index2 := 0;
MensajeCifrado:='';
Key:='sesamo';
Mensaje:= 'd3Ir6';
for I:=0 to 255 do
State[I]:=I;
for I:=0 to 255 do
begin
Index2 := (ord(key[Index1])+ State[I]+ Index2 ) mod 256;
aux := State[I]; State[I]:= State[Index2]; State[Index2] := aux;
Index1 := (Index1+1) mod (length(Key));
end;
for I:=0 to length(Mensaje)-1 do
begin
X := (X+1) mod 256;
y := (State[X] + Y) mod 256;
aux := State[X]; State[X]:= State[Y]; State[Y] := aux;
NMen := ord(Mensaje[I+1]) XOR State[(State[X] + State[Y]) mod 256];
MensajeCifrado := MensajeCifrado + '-' + IntToHex(NMen,2);
Edit1.Text:= copy(MensajeCifrado,2,length(MensajeCifrado)-1);
End;
end;
Valora esta pregunta


0