#!/usr/bin/perl

use bytes;
use Crypt::PasswdMD5;
use MIME::Base64;

sub random_bytes($) {
    my($n) = @_;
    my($v, $i);

    if ( open(RANDOM, '<', '/dev/random') ||
	 open(RANDOM, '<', '/dev/urandom') ) {
	read(RANDOM, $v, $n);
    } else {
	# No real RNG available...
	srand($$ ^ time);
	$v = '';
	for ( $i = 0 ; $i < $n ; $i++ ) {
	    $v .= ord(int(rand() * 256));
	}
    }

    return $v;
}


($pass, $salt) = @ARGV;

unless (defined($salt)) {
    $salt = MIME::Base64::encode(random_bytes(6), '');
    $salt =~ tr/\+/./;		# . not +
}

print unix_md5_crypt($pass, $salt), "\n";
