Passwort Problem
Hallo ListenmitgliederInnen,
ich bin noch recht neu in der PHP-Programmierung und habe folgendes Problem.
In einer Datenbank steht das verschlüsselte Passwort aus der passwd (Linux).
In einem Webformular frage ich Benutzer und Passwort ab und möchte
Prüfen, ob das korrekt ist.
Das Passwort wird korrekt aus der DB gelesen. Aber ich bekomme den
Vergleich nicht hin, dass er funktioniert.
Die nachfolgende Anweisung führt zu unterschiedlichen Ergebnissen.
Wobei
$pw , dass eingegebene Passwort ist
$dbpw, dass Passwort aus der Datenbank ist
$pwc = crypt($pw,$dbpw);
Hinterher soll dann $pwc = $dbpw sein (Diese Information habe ich auf
einer Webseite gefunden), was aber nicht der Fall ist.
Hat jemand eine Idee, wie man herausbekommt, dass das richtige Passwort
eingegeben worden ist.
Ich wäre für jede Anregung / Hilfe dankbar.
U. Schmidt
Re: Passwort Problem
Uwe Schmidt schrieb:
> Hallo ListenmitgliederInnen,
>
> ich bin noch recht neu in der PHP-Programmierung und habe folgendes
> Problem.
>
> In einer Datenbank steht das verschlüsselte Passwort aus der passwd
> (Linux).
Das Passwort steht Heutzutage in der etc/shadow da die etc/passwd fuer
jeden lesbar ist.
> In einem Webformular frage ich Benutzer und Passwort ab und möchte
> Prüfen, ob das korrekt ist.
>
> Das Passwort wird korrekt aus der DB gelesen. Aber ich bekomme den
> Vergleich nicht hin, dass er funktioniert.
>
> Die nachfolgende Anweisung führt zu unterschiedlichen Ergebnissen.
> Wobei
>
> $pw , dass eingegebene Passwort ist
> $dbpw, dass Passwort aus der Datenbank ist
>
> $pwc =3D crypt($pw,$dbpw);
Der 2. Parameter muss ein Salt sein. Die Laenge des SALTs bestimmt das
Verhalten von Crypt, sofern dein Systems mehr als das Standard DES
unterstuetzt.
Steht aber so auch alles auf http://www.php.net/crypt
> Hinterher soll dann $pwc =3D $dbpw sein (Diese Information habe ich auf=
> einer Webseite gefunden), was aber nicht der Fall ist.
>
> Hat jemand eine Idee, wie man herausbekommt, dass das richtige Passwort=
> eingegeben worden ist.
Wir hatten hier gerade den Thread "Finden von Angaben" welchen du auch
unter
http://groups.google.com/group/de.comp.lang.php.misc/browse_ thread/thread=
/a53aec8557d58dd8/4e70bf4eaf190ddf
findest. Im untern drittel gehts los.
Als Anmerkung sei gesagt das du erst einmal heraus finden musst ob und
welch ein Typ denn den Passwort ist. Nur zusagen es ist "Crypt" ist zu
wenig.
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Passwort Problem
Post removed (X-No-Archive: yes)
Re: Passwort Problem
Hallo,
Danke ersteinmal für die Antwort, dazu einige Ergänzungen.
Joerg Behrens schrieb:
> Uwe Schmidt schrieb:
>> Hallo ListenmitgliederInnen,
>>
>> ich bin noch recht neu in der PHP-Programmierung und habe folgendes
>> Problem.
>>
>> In einer Datenbank steht das verschlüsselte Passwort aus der passwd
>> (Linux).
>
> Das Passwort steht Heutzutage in der etc/shadow da die etc/passwd fuer
> jeden lesbar ist.
>
Das stimmt natürlich, aber bevor die shadow erzeugt wird, wir das in der
Datenbank gespeichert und dann erst gewandelt. Ich bekomme die passwd
angeliefert und mache dann lokal die shadow.
>> In einem Webformular frage ich Benutzer und Passwort ab und möchte
>> Prüfen, ob das korrekt ist.
>>
>> Das Passwort wird korrekt aus der DB gelesen. Aber ich bekomme den
>> Vergleich nicht hin, dass er funktioniert.
>>
>> Die nachfolgende Anweisung führt zu unterschiedlichen Ergebnissen.
>> Wobei
>>
>> $pw , dass eingegebene Passwort ist
>> $dbpw, dass Passwort aus der Datenbank ist
>>
>> $pwc = crypt($pw,$dbpw);
>
> Der 2. Parameter muss ein Salt sein. Die Laenge des SALTs bestimmt das
> Verhalten von Crypt, sofern dein Systems mehr als das Standard DES
> unterstuetzt.
>
> Steht aber so auch alles auf http://www.php.net/crypt
>
Die Seite hatte ich mir angeschaut. Muß ich vielleicht das Passwort aus
der Datei shadow nehmen?
>> Hinterher soll dann $pwc = $dbpw sein (Diese Information habe ich auf
>> einer Webseite gefunden), was aber nicht der Fall ist.
>>
>> Hat jemand eine Idee, wie man herausbekommt, dass das richtige
>> Passwort eingegeben worden ist.
>
> Wir hatten hier gerade den Thread "Finden von Angaben" welchen du auch
> unter
> http://groups.google.com/group/de.comp.lang.php.misc/browse_ thread/thread/a53aec8557d58dd8/4e70bf4eaf190ddf
> findest. Im untern drittel gehts los.
>
> Als Anmerkung sei gesagt das du erst einmal heraus finden musst ob und
> welch ein Typ denn den Passwort ist. Nur zusagen es ist "Crypt" ist zu
> wenig.
>
Wenn ich wüßte wie, wäre ich schon ein Stück weiter.
Uwe
Re: Passwort Problem
Uwe Schmidt schrieb:
>> Wir hatten hier gerade den Thread "Finden von Angaben" welchen du auch=
>> unter
>> http://groups.google.com/group/de.comp.lang.php.misc/browse_ thread/thr=
ead/a53aec8557d58dd8/4e70bf4eaf190ddf
>> findest. Im untern drittel gehts los.
>>
>> Als Anmerkung sei gesagt das du erst einmal heraus finden musst ob und=
>> welch ein Typ denn den Passwort ist. Nur zusagen es ist "Crypt" ist zu=
>> wenig.
>>
>
> Wenn ich wüßte wie, wäre ich schon ein Stück weiter.
Wenn du den obigen Thread genau liest dann haettest du nun gewusst das
wir zu der Annahme gelangt sind das man es an der Laenge und am Prefix
des gehashten Passwords erkennen kann was es denn nun ist.
Auch das Example.2390 von http://de2.php.net/crypt sollte da Licht ins
Dunkel bringen.
Im ungluecklichsten Falle bekommst du CRYPT_EXT_DES geliefert aber dein
System kann nur CRYPT_STD_DES. Dann wird ein *Vergleich* unmoeglich.
Ein kurzer Blick in die etc/shaddow eines unserer Gentoo Systeme zeigt
allerdings mind. 2 Arten an (CRYPT_MD5 und CRYPT_EXT_DES) wobei die
meisten CRYPT_MD5 sind und nur der letzte Eintrag CRYPT_EXT_DES *gruebel*=
Gruss
Joerg
--
TakeNet GmbH, Geschaeftsfuehrer Wolfgang Meier
97080 Wuerzburg Tel: +49 931 903-2243
Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
HRB Wuerzburg 6940 http://www.takenet.de
Re: Passwort Problem
Hallo, Uwe,
Du (u_s.schmidt) meintest am 21.09.07:
> Das Passwort wird korrekt aus der DB gelesen. Aber ich bekomme den
> Vergleich nicht hin, dass er funktioniert.
http://www.php.net/crypt
Viele Gruesse!
Helmut
Re: Passwort Problem
Uwe Schmidt schrieb:
> Hallo ListenmitgliederInnen,
>
> ich bin noch recht neu in der PHP-Programmierung und habe folgendes
> Problem.
>
> In einer Datenbank steht das verschlüsselte Passwort aus der passwd
> (Linux).
Das ist ja absolut unsinnig.
Wenn du schon Unix Accounts zu Authentifizierungs nutzt, dann nutze
pam-auth:
http://packages.debian.org/etch/web/php5-auth-pam
Denn was passiert bei dir, wenn jemand sein Unix Passwort ändert, wie
wird dann das Passwort in der DB aktualisiert?
Gruß Stefan
> U. Schmidt
Re: Passwort Problem
Hallo,
inzwischen funktioniert die Routine. Es lag an einem simplen Tippfehler,
den ich 4 Stunden nicht gesehen habe.
Stefan Braumeister schrieb:
> Uwe Schmidt schrieb:
>> Hallo ListenmitgliederInnen,
>>
>> ich bin noch recht neu in der PHP-Programmierung und habe folgendes
>> Problem.
>>
>> In einer Datenbank steht das verschlüsselte Passwort aus der passwd
>> (Linux).
>
> Das ist ja absolut unsinnig.
>
Ich bekomme die Daten von einem anderen Server und geänderte Passwörter
werden natürlich auch in der DB aktualisiert.
> Wenn du schon Unix Accounts zu Authentifizierungs nutzt, dann nutze
> pam-auth:
> http://packages.debian.org/etch/web/php5-auth-pam
>
Das werde ich bei Gelegenheit mal probieren.
> Denn was passiert bei dir, wenn jemand sein Unix Passwort ändert, wie
> wird dann das Passwort in der DB aktualisiert?
>
Siehe oben.
Tschau Uwe