in reply to Shadow Passwords
Howdy AM,
crypt() in Perl encrypts a string exactly like crypt(3) in your C library. Consulting your crypt(3) manpage will probably show you that if crypt() is provided a salt that begins with the three characters '$1$' followed by at most 8 characters, it will use an MD5-based algorigth.
Changing your code to:
Hope that helps,
-- dug
crypt() in Perl encrypts a string exactly like crypt(3) in your C library. Consulting your crypt(3) manpage will probably show you that if crypt() is provided a salt that begins with the three characters '$1$' followed by at most 8 characters, it will use an MD5-based algorigth.
Changing your code to:
should result in an MD5 passwd (depending on your systems crypt(3), of course).my @chars = ('a'..'z', 'A'..'Z', 0..9); my $password = do {{ local $_ = join "" => map {$chars [rand @chars]} 1..8; redo unless /[a-z]/ && /[A-Z]/ && /\d/; $_; }}; my $salt = '$1$' . join '', ('.', '/', 0..9, 'A'..'Z', 'a'..'z')[ map { int rand 64 } 0 .. 7 ]; my $encrypted_pass = crypt($password, $salt);
Hope that helps,
-- dug
|
---|
In Section
Seekers of Perl Wisdom