¡Ayúdame a analizar cómo se cifra este algoritmo DELPHI!
¿Deberías utilizar esto para tus funciones de cifrado y descifrado de párrafos? //Función de cifrado?String: Cadena a cifrar.Key key
Función?EncrypKey?(Src: String;?Key: String): String;
var
idx?: Entero;
KeyLen?: Entero;
KeyPos?: Entero;
offset?: Entero;
dest?: cadena;
SrcPos?: entero;
SrcAsc?: entero;
TmpSc?: entero
TmpSrcAsc; ?: Entero;
Rango?: Entero;
comenzar
KeyLen:=Longitud(Clave);
¿si? =?0?then?key:='Think?Space';
KeyPos:=0;
SrcPos:=0;
SrcAsc: =0 ;
Rango:=256;
Aleatorio;
desplazamiento:=Aleatorio(Rango);
destino:= formato (' 1.2x',[desplazamiento]);
for?SrcPos?:=?1?to?Length(Src)?do
comenzar
SrcAsc: =(Ord(Src[SrcPos])? ?;
if?KeyPos?lt;?KeyLen?then?KeyPos:=?KeyPos? ?1?else?KeyPos:=1;
p>SrcAsc:=?SrcAsc?xor?Ord(Key[KeyPos]);
dest:=dest?format('1.2x',[SrcAsc]);
offset:=SrcAsc;
end;
Resultado:=Dest;
end;
// ¿Función de descifrado? String: Cadena a descifrar.Key key
Función?UncrypKey?(Src: String; ?Key: String): string;
var?
idx ?: Entero;
KeyPos?: Entero;
desplazamiento?: Entero;
dest?: Cadena
SrcPos? Entero;
SrcAsc?: Entero;
TmpSrcAsc?Entero;
Rango?: Entero
comienzo
KeyLen:=Longitud(Clave);
if?KeyLen?=?0?then?key:='Think?Space';
KeyPos:=0 ) p>
SrcPos:=0;
SrcAsc:=0;
Rango:=256;
desplazamiento:=StrToInt('$' ? copiar(src,1,2));
SrcPos:=3;
repetir
SrcAsc:=StrToInt('$' ?copiar(sr
c, SrcPos, 2));
if?KeyPos?lt;?KeyLen?Then?KeyPos?:=?KeyPos ?1?else?KeyPos?:=?1;
TmpSrcAsc?:=?SrcAsc?xor?Ord(Key[KeyPos]);
if?TmpSrcAsc?lt;=?offset?then
TmpSrcAsc??offset p>
else
TmpSrcAsc?offset:=srcAsc;
SrcPos:=SrcPos ?