md5 verschlüsselt pw unterschiedlich?

PHPlehrling

Mitglied
Hi.

Folgendes Problem login und register mit md5. geht soweit alles, nur dass das PW was beim registrieren generiert wurde und dass welches beim login gerneriert werden unterschiedlich sind. Hat jemand ne Ahnung was das sein kann?
 
ist ganz normal!

http://de.php.net/crypt ->
PHP:
<?php
$password = crypt("My1sTpassword"); # let salt be generated

# You should pass the entire results of crypt() as the salt for comparing a
# password, to avoid problems when different hashing algorithms are used. (As
# it says above, standard DES-based password hashing uses a 2-character salt,
# but MD5-based hashing uses 12.)
if (crypt($user_input,$password) == $password) {
   echo "Password verified!";
}
?>
 
Ach so,
ich dachte es geht um md5()

Weil da ist es praktisch unmöglich dass ein Passwort zwei verschiedene Checksummen haben kann.
 
Nun ja, md5 ist in dem Sinne keine Verschlüsselung. In Kombination mit Login Systemen wird es aber gern dazu missbraucht, um Passwörter 'verschlüsselt' in einer Datenbank zu speichern.
Wie genau eine MD5 Checksumme jetzt berechnet wird, kann ich dir leider auch nicht sagen :)

Jedenfalls wirst du, wenn du in beiden Fällen die md5-Summe eines bestimmten Passworts zum Beispiel eingibtst, nicht auch zwei verschiedene Werte erhalten.

Die Checksumme ist jedes mal die gleiche.

Poste doch einfach mal die Codeschnipsel mit denen dein Problem entsteht, dann kann ich dir möglicherweise weiter helfen :)
 
register.php da wird pw eingetragen
PHP:
$password = md5($password);
$insert = mysql_query("INSERT INTO ibb_user (username,password,email)VALUES('$username','$password','$email')");
}

und login.php
PHP:
require("functions.php");
$password = md5($password);
if(isset($_REQUEST['action'])) $action=$_REQUEST['action'];
else $action="view";
if($action == "login"){
if ((!isset($username)) OR (!isset($password)))
{
die ("Sie haben keinen Usernamen oder kein Passwort eingegeben.");
}
$result= mysql_query("SELECT * FROM ibb_user WHERE username = '$username'");
while($row = mysql_fetch_array($result)) {
if (!$row)
{
die ("Sorry, aber dieser Username ist leider nicht bekannt !");
}
if ($row["password"] <> $password)
{
die ("Sorry, aber dieses Passwort passt nicht zum Usernamen $username das eingegebne PW ist $password !");
}e
 
PHP:
require("functions.php");
$password = md5($_REQUEST['password']);
if(isset($_REQUEST['action'])) $action=$_REQUEST['action'];
else $action="view";
if($action == "login"){
if ((!isset($username)) OR (!isset($password)))
{
die ("Sie haben keinen Usernamen oder kein Passwort eingegeben.");
}
$result= mysql_query("SELECT * FROM ibb_user WHERE username = '$username'");
while($row = mysql_fetch_array($result)) {
if (!$row)
{
die ("Sorry, aber dieser Username ist leider nicht bekannt !");
}
if ($row["password"] != $password)
{
die ("Sorry, aber dieses Passwort passt nicht zum Usernamen $username das eingegebne PW ist $password !");
}
vielleicht so?


Ich! Und sogar dieses vbulletin macht das so afaik...
ach, apüh - du, vbulletin... :)
ich find trotzdem crypt eleganter. außerdem lässt sich md5 doch bestimmt irgendwie zurückrechnen, weil immer das gleiche rauskommt :)
 
Zurück