Knowledge Base Nr: 00146 pswhash.txt - http://www.swe-kaiser.de

Downloads:

PHP: Perl: Passwortverifikation mittels Hash

  
Um das Passwort nicht im Klartext im Script zu vergleichen (Sicherheit!)
wird ein Hash ermittelt und dieser mit einem Hash der Eingabe verglichen.
Ein Ermitteln des Passworts aus dem Hash ist nicht möglich (vgl. "Ei-Rührei").

pwdhash.pl:
=============
$hashsoll = "685ScNL4rq8Cc";
$hash = crypt($input{'passwd'}, $hashsoll);
if ($hashsoll eq $hash) {
print "<h2>ok:$hashsoll==$hash</h2>\n";
} else {
print "<h2>falsch:$hashsoll==$hash</h2>\n";
}

pwdhash.php3:
=============

<html>
<head>
<title>Passworteingabe mittels Hash prüfen</title>
</head>

<body>

<form target="_self" action="/pwdhash.php3" method="post" align="center">
<input type="password" name="passwd" value="" size="10"> <br>
<input type="submit" name="login" tabindex="1">
</form>

<?
#################
#diesen hash mit cut&paste aus der ausgabe einfügen (in diesem fall für 'hugo'
$hashsoll = "68757a576f504d71384e644659";
#################

#hash von eingegebenen passwort bilden
$hashist = bin2hex(crypt(MHASH_CRC32, $passwd));

#ausgabe der hashes
echo("<h2> Eingegeben: Passwort: #$passwd# hash: #$hashist# </h2>");
echo("<h2> Erwartet: Passwort: #hugo# hash: #$hashsoll# </h2>");

#vergleich von eingegebenen hash und fest vorgegebenen hash
if ($hashsoll == $hashist)
echo("<h2>Passwort gültig!</h2>");
else
echo("<h2>Passwort NICHT gültig!</h2>");
?>

</body>
</html>