in reply to
Re: Re: How to use MD5?
in thread How to use MD5?
First, you need to generate an appropriate salt. The code provided by tadman in this node should work.
Then, either install Crypt::PasswdMD5 and use:
my $crypted = unix_md5_crypt $passwd, $salt;
Or, since you're apparently using RedHat (since adduser is a RedHat-specific command AFAIK) and your libc's crypt should do MD5-crypt automatically given a proper MD5 salt, use:
my $crypted = crypt $passwd, $salt;
To make sure this works, print the value of $crypt
; it should be something like $1$b1yv9grF$mpwoS2r11VtENFrAmF2WW/
(instead of the shorter string returned by traditional DES-crypt). Once you've confirmed that you have what looks like an MD5-crypted password, use the value of $crypted
in your command line:
system("adduser", "bob", "-p", $crypted) == 0
or die "Error adding user 'bob': $!$/";
The secret to getting crypt to work correctly is in providing a salt starting with '$1$' and having 8 characters (instead of the normal 2 used for DES-crypt). There are similar conventions for using other crypt variants (e.g. '$2$' for SHA-crypt).