[CLI Wiki] page ajoutée : scripts:exemples:makepasswd

noreply at asyd.net noreply at asyd.net
Sat Jan 27 16:33:22 CET 2007


Une page dans votre Wiki a été ajoutée ou modifiée. Voici les 
détails :

Date              : 2007/01/27 16:33
Navigateur        : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1 (Debian-2.0.0.1+dfsg-2)
Adresse IP        : 81.57.183.131
Nom d'hôte        : lon92-1-81-57-183-131.fbx.proxad.net
Ancienne révision : none
Nouvelle révision : http://cli.asyd.net/home/scripts/exemples/makepasswd
Résumé            : créée
Utilisateur       : asyd

======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 at 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


-- 
Ce message a été généré par DokuWiki
http://cli.asyd.net/home/



More information about the Shell mailing list