programmation_perl
Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
programmation_perl [2011/04/28 16:25] – thierry | programmation_perl [2011/10/11 21:19] (Version actuelle) – thierry | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== Crypt ====== | ||
+ | |||
+ | Liens: | ||
+ | *http:// | ||
+ | *http:// | ||
+ | *http:// | ||
+ | |||
+ | But: comparer et construire des clés " | ||
+ | |||
+ | Voila: | ||
+ | # | ||
+ | | ||
+ | use strict; | ||
+ | use warnings; | ||
+ | | ||
+ | { | ||
+ | # From package: libauthen-simple-passwd-perl | ||
+ | # | ||
+ | use Authen:: | ||
+ | | ||
+ | # Où: | ||
+ | # password = mot de passe saisie (en clair) | ||
+ | # encrypted = le hash recupéré dans une base (ou fichier shadow ...) | ||
+ | # Exemple: | ||
+ | # encrypted format: | ||
+ | # $< | ||
+ | # $1$12345678$1234567890123456789012 | ||
+ | # ou $6$12345678$xxxxxxxxxxxxxxx... | ||
+ | sub check_password | ||
+ | { | ||
+ | my ( $password , $encrypted ) = @_; | ||
+ | return Authen:: | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | # Créer de la poussiere | ||
+ | # 8 caracteres aléatoires | ||
+ | | ||
+ | sub crypt_salt | ||
+ | { | ||
+ | my $salt = `( date +%s%N ; ps aux ) | md5sum | openssl base64`; | ||
+ | return substr( $salt, 0, 8 ); | ||
+ | } | ||
+ | | ||
+ | { | ||
+ | # From package: libcrypt-unixcrypt-perl | ||
+ | # | ||
+ | use Crypt:: | ||
+ | | ||
+ | sub crypt_password | ||
+ | { | ||
+ | my ( $p , $s ) = @_; | ||
+ | if ( !defined( $s ) ) { | ||
+ | # Créer la poussiere | ||
+ | $s = ' | ||
+ | } | ||
+ | return crypt($p, | ||
+ | } | ||
+ | } | ||
+ | | ||
+ | # -------------------------------------- | ||
+ | # Chiffrement crypt : $1$salt45678 | ||
+ | # Chiffrement sha512 : $6$salt45678 | ||
+ | # | ||
+ | # le " | ||
+ | # -------------------------------------- | ||
+ | | ||
+ | { | ||
+ | # ----------------------------- | ||
+ | # Coder un mot de passe | ||
+ | # ----------------------------- | ||
+ | | ||
+ | my $c_password = ' | ||
+ | my $e_password = crypt_password( $c_password ); | ||
+ | | ||
+ | print "Mot de passe en clair: $c_password\n"; | ||
+ | print " | ||
+ | | ||
+ | # ---------------------------- | ||
+ | # Vérifier mot de passe | ||
+ | # ---------------------------- | ||
+ | | ||
+ | print " | ||
+ | | ||
+ | # ---------------------------- | ||
+ | } | ||
+ | |||
+ | Test: | ||
+ | ./ | ||
+ | Mot de passe en clair: M0t2P4ss3 | ||
+ | Devient chiffré en sha512: $6$OGViYWMx$M8GagcogWG18BoF7qVpgczE9ArxrFQk5YcAnqbiBAuWni37MVYG.GDT57Isy.3Z3qTVFCMn2UbB8nFLKrQA/ | ||
+ | Vérification du mot de passe : OK | ||
+ | |||
====== Random Quantum ====== | ====== Random Quantum ====== | ||
programmation_perl.1304007915.txt.gz · Dernière modification : 2011/04/28 16:25 de thierry