| Current Path : /proc/8644/root/proc/self/root/proc/self/root/proc/8644/task/8644/root/usr/bin/ | 
| Current File : //proc/8644/root/proc/self/root/proc/self/root/proc/8644/task/8644/root/usr/bin/md5pass | 
#!/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";