dark_ghost
Erfahrenes Mitglied
Hallo zusammen,
ich bin mir bewusst, dass es mehrere Beiträge zum Thema md5-checksummen gibt aber keines konnte mir so wirklich weiterhelfen. Deshalb stelle ich jetz nochmal eine konkrete Frage, vielleicht hab ich ja auch nur einen kleinen Fehler im Script.
Mein Ziel ist es die md5-Checksumme für ein Login zu verwenden, wo ich das Passwort des Users damit "verschlüsseln" möchte.
Mit diesem Script wird der Datenbank ein Test-User hinzugefügt:
In der Datenbank steht nun:
-siehe angehängtes Bild (db.png)-
Über dieses Formular melden sich die Benutzer an:
Der eingegebene Username und das Password werden an das Script login.php übergeben, das die Werte prüft:
Melde ich mich jetz mit Username: Admin und Password: cfc an, erhalte ich immer die Meldung das meine Benutzerdaten nicht stimmen.
Daraufhin habe ich das mit dem PW "verschlüsseln" mal eigens in beiden scripten versucht, bringt aber auch nichts. Ich hab mir auch mal das "verschlüsselte" PW ausgeben lassen wenn es vom Script in die DB eingetragen wird und dann nochmal wenn die Usereingabe "verschlüsselt" wird.
Beide male lautet das PW cfc aber ich erhalte nicht die selbe checksumme.
Das hab ich dann nochmal mit einem extra Script getestet, was diesen Vorgang bestätigt:
Normalerweise müsste ich beidesmal die selbe checksumme erhalten, so ist es aber leider nicht:
Das Ergebnis:
Ich weis jetz leider nicht wo da der Fehler sein soll, denn beidemale wird das selbe PW "verschlüsselt". Beim hinzufügen cfc und bei der eingabe übers formular cfc, welches dann verschlüsselt wird und mit der checksumme aus der db verglichen wird.
Für Tipps und Ratschläge bin ich euch dankbar.
Gruß
Andreas
ich bin mir bewusst, dass es mehrere Beiträge zum Thema md5-checksummen gibt aber keines konnte mir so wirklich weiterhelfen. Deshalb stelle ich jetz nochmal eine konkrete Frage, vielleicht hab ich ja auch nur einen kleinen Fehler im Script.
Mein Ziel ist es die md5-Checksumme für ein Login zu verwenden, wo ich das Passwort des Users damit "verschlüsseln" möchte.
Mit diesem Script wird der Datenbank ein Test-User hinzugefügt:
PHP:
//Verbindung zur DB herstellen
$dbconnect = mysql_connect("xxx","xxx","xxx") OR die ("Keine Verbindung zur DB moeglich");
mysql_select_db("xxx") OR die ("Die Datenbank existiert nicht");
//Neuen Benutzer mit folgenden Eigenschaften der DB hinzufügen
$username = "Admin";
$userpw = "cfc";
$realname = "Andreas";
$email = "Admin@cfc.de";
//userpw verschlüsseln
$userpwkey = MD5('".$userpw."');
//Neuen User in der DB anlegen
$sql = mysql_query("INSERT INTO `users` (username, userpw, realname, email) VALUES ('$username', '$userpwkey', '$realname', '$email')");
//Verbindung zur DB beenden
mysql_close($dbconnect);
-siehe angehängtes Bild (db.png)-
Über dieses Formular melden sich die Benutzer an:
PHP:
//Session starten
session_start ();
//Meldung wenn das Login fehlgeschlagen ist
if(isset ($_REQUEST["fehler"]))
{
echo "Die Zugangsdaten sind nicht korrekt!<br />";
}
//Formular für das Login
echo "<form action=\"login.php\" method=\"post\">";
echo "Username: <input type=\"text\" name=\"username\" size=\"20\"><br />";
echo "Password: <input type=\"password\" name=\"userpw\" size=\"20\"><br />";
echo "<input type=\"submit\" name=\"submit\" value=\"Join\"><br />";
echo "</form>";
PHP:
// Session starten
session_start ();
//Übergabeparameter vom login_formu.php auslesen
$usernamein = $_REQUEST['username'];
$userpwin = $_REQUEST['userpw'];
//Übergebenes pw verschlüsseln um es mit verschlüsseltem pw aus db zu vergleichen
$userpwkey = MD5('".$userpwin."');
//Verbindung zur DB herstellen
$dbconnect = mysql_connect("xxx","xxx","xxx") OR die ("Keine Verbindung zur DB moeglich");
mysql_select_db("xxx") OR die ("Die Datenbank existiert nicht");
$sql = "SELECT * FROM `users` WHERE `username` = '".$usernamein."' AND `userpw` = '".$userpwkey."'";
$result = mysql_query($sql);
$anz = mysql_num_rows($result);
if ($anz > '0')
{
// Benutzerdaten in ein Array auslesen.
$data = mysql_fetch_array ($result);
// Sessionvariablen erstellen und registrieren
$_SESSION["user_id"] = $data["id"];
$_SESSION["user_nickname"] = $data["username"];
$_SESSION["user_realname"] = $data["realname"];
header ("Location: intern.php");
}
else
{
header ("Location: login_formu.php?fehler=1");
}
//Verbindung zur DB beenden
mysql_close($dbconnect);
Melde ich mich jetz mit Username: Admin und Password: cfc an, erhalte ich immer die Meldung das meine Benutzerdaten nicht stimmen.
Daraufhin habe ich das mit dem PW "verschlüsseln" mal eigens in beiden scripten versucht, bringt aber auch nichts. Ich hab mir auch mal das "verschlüsselte" PW ausgeben lassen wenn es vom Script in die DB eingetragen wird und dann nochmal wenn die Usereingabe "verschlüsselt" wird.
Beide male lautet das PW cfc aber ich erhalte nicht die selbe checksumme.
Das hab ich dann nochmal mit einem extra Script getestet, was diesen Vorgang bestätigt:
PHP:
$pw = "cfc";
$pw_key = MD5('".$pw."');
echo "Vorher-PW: " . $pw . "<br>Nacher-PW: " . $pw_key;
echo "<hr>";
$pw2 = "cfc";
$pw_key2 = MD5('".$pw2."');
echo "Vorher-PW2: " . $pw2 . "<br>Nacher-PW2: " . $pw_key2;
Das Ergebnis:
Code:
Vorher-PW: cfc
Nacher-PW: b07c8fbb5d354cabf993e6771c8226dc
Vorher-PW2: cfc
Nacher-PW2: 76492f82f5035cbfca6fb6ac54dc76b1
Ich weis jetz leider nicht wo da der Fehler sein soll, denn beidemale wird das selbe PW "verschlüsselt". Beim hinzufügen cfc und bei der eingabe übers formular cfc, welches dann verschlüsselt wird und mit der checksumme aus der db verglichen wird.
Für Tipps und Ratschläge bin ich euch dankbar.
Gruß
Andreas