Passwörter in DB ablegen
Flo
- datenbank
Hallo liebe Forenbeiträger!
Ich habe veschiedene Benutzer in einer Datenbank (MySQL 3.2) mit Namen und Passwort stehen. Momentan ist das Passwort allerdings al normaler varchar so abgelegt, das jeder administrator, der auf die DB zugreifen kann alle Passwörter lesen könnte.
Ich will das verhindern. Die Passwörter sollten am besten kryptich abgelegt werden, und nur der user selbst sollte sein Passwort kennen.
Geht das irgendwie? Gibt es in PHP eine Prozedur zum ver- und etnschlüsseln bestimmter Zeichenketten ???
Oder kann das sogar MySQL irgendwie ???
Vielen Dank
Flo
Hi Flo,
Ich will das verhindern. Die Passwörter sollten am besten kryptich abgelegt werden, und nur der user selbst sollte sein Passwort kennen.
Geht das irgendwie? Gibt es in PHP eine Prozedur zum ver- und etnschlüsseln bestimmter Zeichenketten ???
probiers mal mit crypt();
Verschlüssle das Passwort und schreibs in die DB. Gibt der User wieder sein Passwort ein, verschlüssle es wieder und vergleiche, obs das Gleiche ist.
mehr unter http://www.phpbox.de/php_befehle/crypt.php
Gruss, sprain
Hi Flo,
Ich will das verhindern. Die Passwörter sollten am besten kryptich abgelegt werden, und nur der user selbst sollte sein Passwort kennen.
Geht das irgendwie? Gibt es in PHP eine Prozedur zum ver- und etnschlüsseln bestimmter Zeichenketten ???
probiers mal mit crypt();
Verschlüssle das Passwort und schreibs in die DB. Gibt der User wieder sein Passwort ein, verschlüssle es wieder und vergleiche, obs das Gleiche ist.
mehr unter http://www.phpbox.de/php_befehle/crypt.php
Gruss, sprain
Hi Flo,
Ich will das verhindern. Die Passwörter sollten am besten kryptich abgelegt werden, und nur der user selbst sollte sein Passwort kennen.
Geht das irgendwie? Gibt es in PHP eine Prozedur zum ver- und etnschlüsseln bestimmter Zeichenketten ???
probiers mal mit crypt();
Verschlüssle das Passwort und schreibs in die DB. Gibt der User wieder sein Passwort ein, verschlüssle es wieder und vergleiche, obs das Gleiche ist.
mehr unter http://www.phpbox.de/php_befehle/crypt.php
Gruss, sprain
Danke!
Aber warum läuft der Abgleich von Paswörtern nicht so, wie beschrieben:
if ( crypt("test")==crypt("test"))
{
echo"subba";
}
müsste doch "subba" ausgeben - tut es aber nicht! Warum ??
Gruß
Flo
Hi Flo,
Aber warum läuft der Abgleich von Paswörtern nicht so, wie beschrieben:
if ( crypt("test")==crypt("test"))
{
echo"subba";
}
müsste doch "subba" ausgeben - tut es aber nicht! Warum ??
Hm, stimmt. crypt gibt nicht immer das gleiche Resultat aus, also sind die beiden Strings auch nicht identisch. Versuchs mal so, wie in diesem Thread auch schon erklärt wurde, nämlich mit md5:
if ( md5("test")==md5("test"))
{
echo"subba";
}
ich bin mir jetzt nicht ganz sicher, aber ich denke im gegensatz zu crypt kann man den md5-Wert wieder zurückübersetzen, was natürlich ein gewisses Sicherheitsrisiko ist. Kann mich aber auch täuschen, dann soll mich bitte jemand korrigieren :-)
Gruss, sprain
Hi Flo,
Aber warum läuft der Abgleich von Paswörtern nicht so, wie beschrieben:
if ( crypt("test")==crypt("test"))
{
echo"subba";
}
müsste doch "subba" ausgeben - tut es aber nicht! Warum ??
Hm, stimmt. crypt gibt nicht immer das gleiche Resultat aus, also sind die beiden Strings auch nicht identisch. Versuchs mal so, wie in diesem Thread auch schon erklärt wurde, nämlich mit md5:
if ( md5("test")==md5("test"))
{
echo"subba";
}
ich bin mir jetzt nicht ganz sicher, aber ich denke im gegensatz zu crypt kann man den md5-Wert wieder zurückübersetzen, was natürlich ein gewisses Sicherheitsrisiko ist. Kann mich aber auch täuschen, dann soll mich bitte jemand korrigieren :-)
Gruss, sprain
Ja! Was sollich sagen ?
subba ;)
Danke!!!
Flo
Hallo,
ich bin mir jetzt nicht ganz sicher, aber ich denke im gegensatz zu crypt kann man den md5-Wert wieder zurückübersetzen, was natürlich ein gewisses Sicherheitsrisiko ist. Kann mich aber auch täuschen, dann soll mich bitte jemand korrigieren :-)
Nein. Man kann ihn nicht "Rückübersetzen".
Gruss
MichaelB
Hallo,
Nein. Man kann ihn nicht "Rückübersetzen".
Umso besser! Danke!
Gruss, sprain
Hi Flo,
if ( crypt("test")==crypt("test"))
{
echo"subba";
}
müsste doch "subba" ausgeben - tut es aber nicht! Warum ??
crypt() benötigt zwei Parameter: Ein Passwort und ein "salt".
Anscheinend würfelt sich Deine crypt()-API ein salt aus, wenn Du keines
angibst - dann kommen natürlich nicht zwei gleiche Ergebnisse heraus.
Das salt steht in einem gecrypt()eten Passwort in den ersten beiden Zeichen
Viele Grüße
Michael
Hallo,
Geht das irgendwie? Gibt es in PHP eine Prozedur zum ver- und etnschlüsseln bestimmter Zeichenketten ???
Oder kann das sogar MySQL irgendwie ???
Eine Moeglichkeit ist die Speicherung des MD5-Hashes in der DB und der spaetere Vergleich des wiederum kodierten eingegebenen Passwortes.
Siehe die md5()-Funktion in PHP und MySQL.
MfG, Thomas