Différences

Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue comparative

scripts:exemples:makepasswd [2007/01/27 16:33] (Version actuelle)
asyd créée
Ligne 1: Ligne 1:
 +======makepasswd.pl======
  
 +=====Description=====
 +
 +Ce script génère un mot de passe aléatoire et l'​affiche en plaintext aussi bien qu'au format crypt en générant un salt. Les caractères utilisés pour composer le mot de passe sont facilement configurables. Si un argument est fourni à l'​appel du script, il sera utilisé comme mot de passe.
 +
 +J'ai écris ce script pour générer les mots de passe pour mes utilisateurs LDAP. Il a l'​avantage (actuel) de ne requérir aucun module non upstream.
 +
 +=====Code=====
 +<code perl>
 +#​!/​usr/​bin/​perl
 +
 +# make a random or given password using crypt (salt, password)
 +# Bruno Bonfils, <​asyd@debian-fr.org>​
 +# (c) 2003
 +#
 +# TODO : use internal perl function instead generatestring
 +
 +use strict;
 +
 +sub GenerateString {
 +    my ($len) = @_;
 +    my $validstr = '​0123456789abcdefghijklmnopqrstuvwxyz,/​%';​
 +    my @valid = split(//,​$validstr);​
 +    my ($in, $out);
 +
 +    open (F, "</​dev/​urandom"​) || die "No /​dev/​urandom found!";​
 +    foreach (1..$len) {
 +        read(F, $in, 1);
 +        $out .= $valid[ord($in) % ($#valid + 1)];
 +    }
 +    close F;
 +    return $out;
 +}
 +my $pass;
 +my $salt;
 +
 +if(defined($ARGV[0])) {
 +  $pass = $ARGV[0];
 +} else {
 +  $pass = GenerateString(8);​
 +}
 +
 +if (defined ($ARGV[1])) {
 +   $salt = $ARGV[1];
 +} else {
 +   $salt = GenerateString(2);​
 +}
 +
 +print "​clear:​ $pass\n";​
 +print "​crypt:​ " . crypt($pass,​ $salt) . "​\n";​
 +</​code>​
 +
 +=====Exemples=====
 +
 +<​code>​
 +% ./​makepasswd.pl
 +clear: csjrvzgo
 +crypt: 7,​oZpHQ.B9NT2
 +</​code>​
 +
 +<​code>​
 +% ./​makepasswd.pl csjrvzgo
 +clear: csjrvzgo
 +crypt: zflMdLrO5M4wk
 +</​code>​
 +
 +=====TODO=====
 +
 +   * AJouter d'​autre algorithmes comme MD5, SHA1
 
scripts/exemples/makepasswd.txt · Dernière modification: 2007/01/27 16:33 par asyd