Date: Tue, 21 Dec 1999 10:55:42 -0500 From: Robert Beer <r-beer@onu.edu> To: keramida@ceid.upatras.gr, Fabrizzio Batista <fabrizzio.batista@lojasobino.com.br> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: SALT Algorithm in PERL Message-ID: <l03130325b485531f53ea@[140.228.15.35]> In-Reply-To: <19991221150917.F728@hades.hell.gr> References: <000601bf4ae3$0ac55780$65010180@lojasobino.com.br> <000601bf4ae3$0ac55780$65010180@lojasobino.com.br>
next in thread | previous in thread | raw e-mail | index | archive | help
At 8:09 AM -0500 12/21/99, Giorgos Keramidas wrote:
>On Mon, Dec 20, 1999 at 10:09:17AM -0200, Fabrizzio Batista wrote:
>|
>| Hi gurus,
>|
>| I am using a FreeBSD box (3.3 S) in a ISP, and I need to make a
>| script that change the users passwords. I am using the PERL language
>| to make this, but I donĄt have the SALT Algorithm.
>
>If I recall this correctly, you can use a random pair of characters
>from the [a-zA-Z0-9./] character class. Given a routine in perl that
>returns a random integer between 0..63 (i.e. one called &rand64), you
>can use:
>
> # excuse the too long line here ;)
> $universe = "./0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
> $s0 = $universe[&rand64];
> $s1 = $universe{&rand64];
> $salt = "$s0$s1";
>
>or something similar to this one, my perl is not that good, and I might
>have made some silly mistake.
Here is a snippet of the code I use:
@saltset = ('a' .. 'z', 'A' .. 'Z', '0' .. '9', '.','/');
#
$now = time;
($pert1, $pert2) = unpack("C2", $username);
$week = $now / (60*60*24*7) + $pert1 + $pert2;
$salt = $saltset[$week % 64] . $saltset[$now % 64];
$password = crypt($passwd, $salt);
---
Bob Beer <r-beer@onu.edu>
Ohio Northern University, Academic Computer Services, Ada, OH 45810
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?l03130325b485531f53ea>
