Table des matières
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
#!/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";
Exemples
% ./makepasswd.pl clear: csjrvzgo crypt: 7,oZpHQ.B9NT2
% ./makepasswd.pl csjrvzgo clear: csjrvzgo crypt: zflMdLrO5M4wk
TODO
- AJouter d'autre algorithmes comme MD5, SHA1
scripts/exemples/makepasswd.txt · Dernière modification: 2007/01/27 16:33 par asyd