🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #7098

Re: Encriptacion de contraseñas en perl

#7098
From: Samuel
Date: Sun, 06 Apr 2003 20:45
96 lines
4403 bytes
On Sun, 06 Apr 2003 17:17:09 +0000, kurtsik 
 <merlinaztia*STOPSPAM*@mixmail.com> wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Salu2.
> Estoy haciendo un script en perl para crear un monton de usuarios a la vez, 
> el problema es que tengo que encriptar las contrase�as para que no me las 
> pida con cada useradd. He estado buscando en google y he encontrado este 
> trozo de codigo que hizo algun ecolero hace tiempo :-) :
> 
> #!/usr/bin/perl -w
> use lib ('./Sources/Lib','./',);
> $pass = "123456";
> $name = "kurtsik";
> print crypt ($pass, lc (substr($name, 0, 2 )));
> 
> El problema es que no consigo entender como funciona y ademas las 
> contrase�as que genera son mucho mas cortas que las de mandrake. Podriais 
> echarme una mano?
> 
> Y ya de paso y sin abusar ;-) , conoceis algun enlace donde pueda buscar 
> informacion sobre perl-tk?
> 
> Gracias mil.
> Kurtsik 

Me da en la nariz que Mandrake usar� passwords MD5, as� que la llamada
crypt no te servir� de mucho. Te paso un script para crear pass en MD5
(y en alguna otra cosa). Respecto a qu� hace el script, pu�s simplemente
llama a crypt con la password y el "salt" generado de forma no demasiado
aleatoria(crypt(3) para m�s info). Si no recuerdo mal el campo salt(que
supongo que es lo que te descoloca) sirve para que la misma pass,
cifrada con diferente salt d� una cadena cifrada distinta, lo cual
protege algo de ciertas situaciones (como que se pueda ver que dos
usuarios tienen la misma contrase�a s�lo mirando el /etc/passwd). 

Supongo que era �sto lo que ped�as.

----------------------------------------------------------------------
#!/usr/bin/perl 

# Perl code to create and print SHA1 and MD5 hashes of passwords
# shamelessly stolen from the openLDAP Faq-O-Matic
# written 19-Jul-01 by Ed Truitt
# Updated 12-Oct-01 to include a {crypt} version of the password

$theGoodWord = $ARGV[0];
chomp($theGoodWord);

# First, print the clear text version

print "\n" ;
print "The Good Word is ==> $theGoodWord \n " ;
print "\n" ;

# Now generate and print the SHA1 hash

use Digest::SHA1;
use MIME::Base64;
$ctx = Digest::SHA1->new;
$ctx->add($theGoodWord);
$hashedSHAPasswd = '{SHA}' . encode_base64($ctx->digest,'');
print 'userPassword: ' .  $hashedSHAPasswd . "\n";


# Now generate and print the MD5 hash

use Digest::MD5;
use MIME::Base64;
$ctx = Digest::MD5->new;
$ctx->add($theGoodWord);
$hashedMD5Passwd = '{MD5}' . encode_base64($ctx->digest,'');
print 'userPassword: ' .  $hashedMD5Passwd . "\n";


# Now generate and print the CRYPT version

# first we need to generate the salt

@chars = ("A" .. "Z", "a" .. "z", 0 .. 9, qw(. /) );
$salt = join("", @chars[ map { rand @chars} ( 1 .. 4) ]);

# now to generate the password itself

$cryptPasswd = '{crypt}' . crypt($theGoodWord,$salt);
print 'userPassword: ' .  $cryptPasswd . "\n";
print "\n";
------------------------------------------------------------

Saludos 

Samuel

-- 
PGP Key pgp.rediris.es    -----         KeyID 0x822583C2
Technical Details
Message-ID: <slrnb914en.tn.444398NOSPAM@tizona.dummy.net>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.frii.net!newsfeed.frii.net!news-out.newsfeeds.com!propagator2-maxim!news-in.spamkiller.net!propagator3-maxim!news-in.superfeed.net!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mail
References: <b6pgcv$7h755$1@ID-101278.news.dfncis.de>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,a4f41b515bfdadf5
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-04-06 13:45:15 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news-spur1.maxwell.syr.edu!news.maxwell.syr.edu!newsfeed.frii.net!newsfeed.frii.net!news-out.newsfeeds.com!propagator2-maxim!news-in.spamkiller.net!propagator3-maxim!news-in.superfeed.net!nsnmpen1-lo.nuria.telefonica-data.net!nsnmpen2-lo.nuria.telefonica-data.net!not-for-mail
From: Samuel <444398NOSPAM@celes.unizar.es>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Encriptacion de contraseñas en perl
Date: Sun, 6 Apr 2003 20:45:13 +0000 (UTC)
Organization: Telefonica Data Espagna
Lines: 96
Message-ID: <slrnb914en.tn.444398NOSPAM@tizona.dummy.net>
References: <b6pgcv$7h755$1@ID-101278.news.dfncis.de>
NNTP-Posting-Host: 80-25-246-165.uc.nombres.ttd.es
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: nsnmpen2-gest.nuria.telefonica-data.net 1049661913 20147 80.25.246.165 (6 Apr 2003 20:45:13 GMT)
X-Complaints-To: usenet@nsnmpen2-gest.nuria.telefonica-data.net
NNTP-Posting-Date: Sun, 6 Apr 2003 20:45:13 +0000 (UTC)
User-Agent: slrn/0.9.7.4 (FreeBSD)