Mit folgendem Formular wird ein Klartextpasswort in einen MD4-String umgewandelt.

Dieser kann dann in eine htpasswd Datei eingesetzt werden:

 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Verschlüsselung eines Passwortes für die htpasswd-Datei</title>
</head>
<body bgcolor="#ffffff">
Hier bitte <b>Benutzername : Passwort</b> eingeben:<br>
<form action="./cgi-bin/htpasswd.cgi" method="post">
<input type="text" value="" size="8" maxlength="8" name="user"> :
<input type="password" value="" size="8" maxlength="8" name="passwd">
<input type="submit" value="verschlüsseln">
</form>
</body>
</html>

 

Und hier das dazugehörige Perlscript:

#!/usr/bin/perl
 
use CGI qw(param);
 
$benutzer = param('user');
$passwort = param('passwd');
 
for ($i=0; $i<2; $i++)
{
        $zahl = sprintf("%i", rand(3)+1);
 
        if ($zahl == 1) { $ziffer = sprintf("%s", chr(rand(26)+65)); }
        if ($zahl == 2) { $ziffer = sprintf("%s", chr(rand(26)+97)); }
        if ($zahl == 3) { $ziffer = sprintf("%i", rand(10)); }
        $salt .= $ziffer;
}
 
$crypt = crypt($passwort, $salt);
 
print << "EOF";
Content-Type: text/html
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Verschlüsselung eines Passwortes für die htpasswd-Datei</title>
</head>
<body bgcolor="#ffffff">
Diese Zeile kann jetzt an die htpasswd Datei angehängt werden:<br><br>
<b>
EOF
 
printf("%s:%s", $benutzer, $crypt);
 
print << "EOF";

</body>
</html>
EOF