Date: Fri, 28 Dec 2001 12:21:26 -0200 From: Nelson Murilo <nelson@pangeia.com.br> To: Roberto Ruffinengo <r.ruffinengo@teoresi.it> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: crypted password length (crypt algorithm) Message-ID: <20011228122126.H23646@pangeia.com.br> In-Reply-To: <3C2C8AD7.25881.14F63B5@localhost>; from r.ruffinengo@teoresi.it on Fri, Dec 28, 2001 at 03:08:07PM %2B0100 References: <3C2C8AD7.25881.14F63B5@localhost>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Dec 28, 2001 at 03:08:07PM +0100, Roberto Ruffinengo wrote:
> Hi everybody,
>
> I am running a FreeBSD 4.3 box
>
> and i think i have found something interesting.
>
> On older version of FreeBSD I had a perl script to verify users login account
> that was working quite well.
>
> I moved it on my 4.3 release and it doesn't work at all.
>
> In fact the perl crypt() function generates a crypted password which is 13
> char long, while the password in /etc/master.passwd is 34 char long.
crypt can generate DES or MD5 paswords, if you include '$1$' in
salt, crypt generate MD5.
Like this:
#!/usr/bin/perl
# (C) Nelson Murilo - nelson@pangeia.com.br
# Fri Dec 28 11:47:20 BRST 2001 $nmor
sub salt {
local($salt); # initialization
local($i, $rand);
local(@itoa64) = ( '0' .. '9', 'a' .. 'z', 'A' .. 'Z' ); # 0 .. 63
# to64
for ($i = 0; $i < 27; $i++) {
srand(time + $rand + $$);
$rand = rand(25*29*17 + $rand);
$salt .= $itoa64[$rand & $#itoa64];
}
$salt = '$1$'.$salt;
return $salt;
}
## Main
#
$cryptpwd = "";
$password = $ARGV[0];
$cryptpwd = crypt($password, &salt) if $password ne "";
print "$cryptpwd\n";
Hope this help,
./nelson -murilo
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20011228122126.H23646>
