#!/usr/bin/perl if (! scalar @ARGV ) { print "Usage: htpasswd-b passwordfile user password\n"; print "(this program automatically creates the pw file if needed.)\n"; exit 0; } @saltsource = ('a'..'z', 'A'..'Z', '0'..'9','.','/'); $randum_num = int(rand(scalar @saltsource)); $salt = $saltsource[$randum_num]; $randum_num = int(rand(scalar @saltsource)); $salt .= $saltsource[$randum_num]; print "salt: $salt"; $outf=$ARGV[0]; $user=$ARGV[1]; $passwd=$ARGV[2]; if ($user && $passwd) { $encrypted = crypt($passwd, "$salt"); if (-f $outf) { open(OUT, ">>$outf") || die "htpasswd-b error: $!\n"; } else { open(OUT, ">$outf") || die "htpasswd-b error: $!\n"; } print OUT "$user:$encrypted\n"; close(OUT); exit 0; }