Différences
Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.
— |
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