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
