use Crypt::PasswdMD5; sub my_md5_crypt { my $salt; for(0..7) { $salt .= ('.', '/', 0..9, 'A'..'Z','a'..'z')[rand 64]; } my $pass = shift; #clear text password return unix_md5_crypt($pass, '$1$' . $salt . '$'); }