mercredi 28 novembre 2007

Quick and dirty encryptage et decryptage

Une fois n'est pas coutume, un peu de code pour encrypter/decrypter des chaines simples rapidement.

  1. sub simplecrypt{
  2. my ($string , $key ) = @_ ;
  3. my $mask = substr($key x length($string), 0 , length($string)) ;
  4. my $crypt = $string ^ $mask ;
  5. return unpack("H*" , $string ^ $mask );
  6. }
  7. sub simpledecrypt{
  8. my ($string , $key ) = @_ ;
  9. my $crypted = pack("H*", $string );
  10. my $mask = substr($key x length($crypted) , 0 , length($crypted));
  11. return $crypted ^ $mask ;
  12. }
Avantage: vraiment simple (base sur un XOR) et surtout independant de tout module supplementaire.

Inconvenient: vraiment trop simple. Le codage XOR n'est pas vraiment connu pour sa securite, impossible d'encrypter des chaines unicode.

Conclusion: A utiliser pour des cryptages de base d'identifiants non confidentiels. Par exemple, si vous faite des urls comme celle ci:

  1. http://www.myserver/article/77.html
et que vous ne voulez pas que vos visiteurs puissent essayer 76, 75 ...

Vous pouvez encrypter le numero avec cette methode.


Aucun commentaire: