Ver Mensaje Individual
  #3  
Antiguo 27-11-2007
Mick Mick is offline
Miembro
 
Registrado: may 2003
Posts: 405
Reputación: 22
Mick Va por buen camino
Cita:
Empezado por Novás Ver Mensaje
Código Delphi [-]
const
  clave_xor='12345678B12345678***';
 pal_sec_ofuscada='78;52;72;72;41;76;46;12;74;0B;59;70;85;AA;77;00;0F;1A;BB;69';
En el caso de clave_xor, ya esta en forma de bytes no hay que hacer nada especial.
No queda completamente claro el caso de pal_sec_ofuscada, supondre que cada 2 digitos entre comas representaria un byte en hexadecimal, como son constantes lo mas sencillo es directamente ponerlo en forma de bytes quedando asi.

Código Delphi [-]
const
  clave_xor= '12345678B12345678***';
  pal_sec_ofuscada= #$78#$52#$72#$72#$41#$76#$46#$12#$74#$0B#$59#$70#$85#$AA#$77#$00#$0F#$1A#$BB#$69;

Ahora para encriptar/desencriptar la palabra secreta con la clave, un bucle con un XOR, que seria algo parecido a esto (codigo sin probar):

Código Delphi [-]
function CryptXOR(const str,key:string):string;
var
 i:integer;
begin
 SetLength(Result, length(str));
 for i:=1 to length(str) do begin
     Result[i]:= Chr( Ord(str[i]) XOR Ord(key[((i-1) mod length(key))+1 ]) );
 end;
end;

// Y llamamos asi:

Resultado:= CryptXOR(pal_sec_ofuscada, clave_xor);

Saludos
Responder Con Cita