Red de conocimiento informático - Conocimiento informático - ¡Ayúdame a analizar cómo se cifra este algoritmo DELPHI!

¡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 )

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

else

TmpSrcAsc?offset:=srcAsc;

SrcPos:=SrcPos ?