Hallo zusammen,
nachfolgend beschreibe ich euch mein derzeitiges Problem mit meinem Login-Script für einen Admin-Breich.
Kurz zur Vorgeschichte, habe einige Suchanfragen hier und auf html.de durchgeführt, bin aber bisher nicht fündig geworden
(zb. md5 hash, hash vergleich, nur md5, passwort vergleich, etc)
So, hier erst mal der Code, wo das Problem auftritt
Das Problem sieht nun wie folgt aus, in der Benutzerdatei sind Name, sowie das Passwort als Hash(sha256) hinterlegt und diese werden auch ohne Probleme ausgelsen und in ein asoziatives Array gespeichert.
Beim durchgehen des Arrays prüfe ich zunächst, ob der Benutzername vorhanden ist, das funktioniert auch noch, aber beim prüfen, ob das eingegebene Passwort(gehasht) mit dem aus der Datei übereinstimmt fängt das script an zu spinnen.
Nur beim letzten aufgeführten Benutzer wird das Passwort akzeptier und dass kann ich mir irgendwie nicht erklären.
Folgende Ausgabe kann ich verzeichnen
Wie ihr seht, stimmen die gehashten Passwörter bei Eingabe und aus der Datei bei <Benutzer1> überein.
Bei <Benutzer2> passt es dann komischerweise wieder
Das ganze hatte ich auch zuvor schon mit MD5 probiert und dann auch noch einmal komplett neu geschrieben.
Langsam weiß ich nicht mehr weiter, kann mir einer sagen woran es leigen kann oder seh ich nur den Wald vor lauter Bäumen nicht?
Noch zur Info Ich habe auf meinem Localhost XAMPP 1.73 mit Apache Server 2.2 und PHP 5.3.1 als portable App laufen.
Ich hoffe es gibt jemanden da drau0en, der mir weiterhelfen kann.
mfg sascha
nachfolgend beschreibe ich euch mein derzeitiges Problem mit meinem Login-Script für einen Admin-Breich.
Kurz zur Vorgeschichte, habe einige Suchanfragen hier und auf html.de durchgeführt, bin aber bisher nicht fündig geworden
(zb. md5 hash, hash vergleich, nur md5, passwort vergleich, etc)
So, hier erst mal der Code, wo das Problem auftritt
PHP-Code:
case "login":
if (isset($_POST['submit'])) {
//Daten sammeln
$name = $_POST['name'];
$pass = $_POST['pass'];
$pass5 = hash("sha256",$pass);
$path = "user/.htusers";
echo "Anmeldedaten: ". $name ."/". $pass5 ."<br />\n";
//Benutzerdatei auslesen
if ($file = fopen($path, "r")) {
while ($line = fgets($file)) {
if (!strstr($line, "#")) {
$user = explode(":", $line);
$users['name'][] = $user[0];
$users['pass'][] = $user[1];
}
}
}
$valUser = count($users['name']);
echo "Benutzeranzahl: ". $valUser. "<br />\n";
echo "<p>";
//Alle Benutzer durchgehen
for ($i=0; $i<$valUser; $i++) {
echo $users['name'][$i] ."/". $users['pass'][$i] ."<br />\n";
if ($name == $users['name'][$i]) {
echo "Benutzer gefunden<br />\n";
//Hier ist das Problem!!
//######################
if ($pass5 == $users['pass'][$i]) {
echo "Passwort stimmt<br />\n";
break;
} else {
echo "Passwörter stimmen nicht überein<br />\n";
}
}
}
echo "</p>";
}
break;
Beim durchgehen des Arrays prüfe ich zunächst, ob der Benutzername vorhanden ist, das funktioniert auch noch, aber beim prüfen, ob das eingegebene Passwort(gehasht) mit dem aus der Datei übereinstimmt fängt das script an zu spinnen.
Nur beim letzten aufgeführten Benutzer wird das Passwort akzeptier und dass kann ich mir irgendwie nicht erklären.
Folgende Ausgabe kann ich verzeichnen
Code:
Anmeldedaten: <Benuztzer1>/9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 Benutzeranzahl: 2 Daten aus der Benutzer-Datei <Benutzer1>/9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 Benutzer gefunden Passwörter stimmen nicht überein <Benutzer2>/b3d90f7378551190a061a8ca3c55c2269289f02bbe28d7856128d885d6fb3007
Bei <Benutzer2> passt es dann komischerweise wieder
Code:
Anmeldedaten: <Benutzer2>/b3d90f7378551190a061a8ca3c55c2269289f02bbe28d7856128d885d6fb3007 Benutzeranzahl: 2 Daten aus der Benutzer-Datei <Benutzer1>/9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08 <Benutzer2>/b3d90f7378551190a061a8ca3c55c2269289f02bbe28d7856128d885d6fb3007 Benutzer gefunden Passwort stimmt
Langsam weiß ich nicht mehr weiter, kann mir einer sagen woran es leigen kann oder seh ich nur den Wald vor lauter Bäumen nicht?
Noch zur Info Ich habe auf meinem Localhost XAMPP 1.73 mit Apache Server 2.2 und PHP 5.3.1 als portable App laufen.
Ich hoffe es gibt jemanden da drau0en, der mir weiterhelfen kann.
mfg sascha

Kommentar