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