Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo,

ich habe folgendes Problem.

Ich habe ein Einlogenformular mit dem user und passwort. Nun will ich prüfen, ob das Passwort auch von diesem User ist.

Das Problem ist, das Passwort liegt in der Datenbank verschlüsselt mit der mysqlfunktion ENCRYPT() vor. Eingegeben wird dieser jedoch im Klartext.

Wie vergleiche ich das eingegebene Passwort und das aus der Datenbank?:confused:

Weiß echt nicht womit ich anfangen soll.:(

Wäre sehr dankbar für die Antwort.

Geschrieben
Originally posted by kathi008

Wie vergleiche ich das eingegebene Passwort und das aus der Datenbank?:confused:

Indem du das eingegebene Passwort ebenfalls mit ENCRYPT() bearbeitest und mit dem Wert in der Datenbank vergleichst.

Also in der Art:

SELECT id FROM user WHERE name = 'name' AND password = ENCRYPT('deineingegebenespasswort')

ENCRYPT hat optional einen salt den du vielleicht berücksichtigen musst:

----------------

ENCRYPT(str[,salt])

Encrypt str using the Unix crypt() system call. The salt argument should be a string with two characters. (As of MySQL Version 3.22.16, salt may be longer than two characters.):

mysql> SELECT ENCRYPT("hello");

-> 'VxuFAJXVARROc'

If crypt() is not available on your system, ENCRYPT() always returns NULL. ENCRYPT() ignores all but the first 8 characters of str, at least on some systems. This will be determined by the behaviour of the underlying crypt() system call.

----------------

Gruß Jaraz

Geschrieben

Hallo,

hat jemand schon Erfahrung mit sowas?

Was für zwei(oder mehr) Zeichen sollen in 'salt' stehen?

Ohne diesen Argument funktioniert es nicht. :(

Die Datem werden in der Mysqldatenbank angelegt und da wird einfach die Funktion ENCRYPT('passwort') aufgerufen. Habe gehört, diese Funktion kodiert ein und desselbe Wort jedesmal anders.

Wie kann ich das dann vergleichen???:confused:

Geschrieben

Hi,

ENCRYPT setzt auf die Betriebssystemfunktion crypt auf.

Sind die Daten auf der gleichen Maschine eingefügt worden?

ENCRYPT liefert mit gleichem Salt und Passwort immer den gleichen Wert.

Da crypt auf windows nicht zur verfügung steht, liefert ENCRYPT unter Windows null.

Um Betriebssystem unabhängig zu arbeiten, kann man die Mysql interne Funktion PASSWORD verwenden.

Gruß Jaraz

Geschrieben
Sind die Daten auf der gleichen Maschine eingefügt worden?

Ja, läuft unter Linux.

ENCRYPT liefert mit gleichem Salt und Passwort immer den gleichen Wert.

Das ist es ja. Es wurde gar kein Salt verwendet!:rolleyes:

Bin echt verzweifelt!:(

Geschrieben
Originally posted by kathi008

if($result[$pass] == crypt($passwort,$result[$pass])

Bist du dir da sicher?

Was soll denn da was sein?

Du übergibst crypt als salt das, was bei crypt rauskommen soll? :confused:

Gruß Jaraz

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...