Cryptage / décryptage de string (algorithme trivial)

Contenu du snippet

Tout est dit dans le titre...

Crypt : on prend un caractère, on le XOR avec le suivant, et on inverse le tout

Decrypt : bah, on fait le contraire ;o)

Source / Exemple :


// cette procédure crypte une chaine en la parcourant de son premier à son dernier caractère (l'adresse du premier caractère étant passé dans EAX)

procedure crypt(s: String); register;
asm
  mov ecx, eax
@loop:
  mov al, byte ptr [ecx]
  test al, al
  jz @exit
  mov al, byte ptr [ecx + 1]
  xor byte ptr [ecx], al
  not byte ptr [ecx]
  inc ecx
  jmp @loop
@exit:
end;

// cette procédure crypte une chaine en la parcourant de son dernier à son premier caractère (l'adresse du premier caractère étant passé dans EAX, il faut tout d'abord parcourir la chaine pour trouver son dernier caractère)

procedure decrypt(s: String); register;
asm
  mov ecx, eax
  xor edx, edx
@init:
  mov al, byte ptr [ecx]
  test al, al
  jz @loop
  inc ecx
  inc edx
  jmp @init
@loop:
  test edx, edx
  jz @exit
  dec ecx
  not byte ptr [ecx]
  mov al, byte ptr [ecx + 1]
  xor byte ptr [ecx], al
  dec edx
  jmp @loop
@exit:
end;

Conclusion :


Bon vu la trivialité du cryptage çà ne sert peut-être pas à grand chose, mais çà a le mérite de m'avoir fait comprendre pas mal de choses ;o)

Pas de bugs connus, tout fonctionne correctement...

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.