Cita:
Empezado por Novás
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;
Resultado:= CryptXOR(pal_sec_ofuscada, clave_xor);
Saludos