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...
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.