11 if ( open(RANDOM, '<', '/dev/random') ||
12 open(RANDOM, '<', '/dev/urandom') ) {
15 # No real RNG available...
18 for ( $i = 0 ; $i < $n ; $i++ ) {
19 $v .= ord(int(rand() * 256));
27 ($pass, $salt) = @ARGV;
29 unless (defined($salt)) {
30 $salt = MIME::Base64::encode(random_bytes(6), '');
31 $salt =~ tr/\+/./; # . not +
34 print unix_md5_crypt($pass, $salt), "\n";