Ankündigung

Einklappen
Keine Ankündigung bisher.

md5 Problem bei Passwort-Prüfung mit Umlauten

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • md5 Problem bei Passwort-Prüfung mit Umlauten

    Hallo,

    ich habe ein Problem bei meiner Passwort-Prüfung, wenn das Passwort mind. ein Umlaut enthält. Das Passwort wird als md5 in der DB gespeichert.

    Wenn der Kunde ein PW ohne Umlaut wählt funktioniert es super, nur wenn man mind. eins verwendet kommt der Kunde nicht mehr in sein Account.

    Woran kann das liegen?


  • #2
    Woran kann das liegen?
    Vermutlich am Üblichen: Fehlerhafter/inkonsequenter Umgang mit der Zeichenkodierung.

    Kommentar


    • #3
      Könntest Du mir einen Beispiel zeigen, wie ich das Problem beheben kann?

      Kommentar


      • #4
        Nein, nicht in beispielhafter Kürze, weil Zeichenkodierung ein komplexeres Thema ist, um welches man sich im Zusammenspiel von Webseite/Browser, PHP und Datenbank an diversen Stellen kümmern muss. (Wenigstens, in dem man an allen relevanten Stellen die verwendete Kodierung explizit angibt.)

        Da du aber absolut nicht der erste bist, der Probleme mit der Zeichenkodierung hat, solltest du in der Lage sein, Erklärungen zu dem Thema per Google zu finden.
        (Der am häufigsten vergessene Punkt ist die Angabe, welche Kodierung bei der Kommunikation mit der Datenbank verwendet werden soll.)

        Kommentar


        • #5
          Oder eine inkonsistente Spezifikation des Zeichensatzes. Schon allein die Vermischung von SET NAMES und SET CHARACTER SET kann in manchen Situationen zu seltsamem Zeichensalat führen.
          Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

          Kommentar


          • #6
            [MOD: verschoben]
            --

            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


            --

            Kommentar


            • #7
              Da ich selber Anfänger bin, kann ich dir auch nicht direkt sagen, schreibe diesen oder jenen Code oder klicke das, das und das an, aber versuch doch mal dir selbst ein Passwort anzulegen, das einen Umlaut hat, und dann probierst du mal ein wenig rum. Du musst natürlich aufpassen, dass du deine DB dabei nicht zerstörst bzw. die Werte darin, falls du den Zeichensatz umstellst und Zeichen verloren gehen, die bei diesem oder jenem Zeichensatz nicht drin sind.

              Andere Möglichkeit:
              Du prüfst das Passwort bei Anlegen einfach auf Umlaute, und wenn einer im Wort vorhanden ist, muss der User n anderes eingeben.

              Kommentar


              • #8
                Zitat von tigerbrezel Beitrag anzeigen
                Andere Möglichkeit:
                Du prüfst das Passwort bei Anlegen einfach auf Umlaute, und wenn einer im Wort vorhanden ist, muss der User n anderes eingeben.
                Nee, das kanns nicht sein. Idealerweise SOLLTEN Passwörter aus BuZiSo's (Buchstaben Ziffern Sonderzeichen) bestehen.

                @TE:
                Zum Debuggen lässt du dir mal die Passwörter im Klartext ausgeben, speicherst sie im Klartext und liest sie wieder aus... beobachte die Effekte, wann "verändert" sich das Zeichen? Das ist ein erster Anhaltspunkt dafür, wo du zu suchen beginnen musst.
                Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                Kommentar


                • #9
                  Wie lstegelitz schrieb: höre nicht auf diesen Vorschlag. Es gibt schon genügend Seiten, auf denen ich bei der Eingabe von Kennwörtern die Meldung „The password contains illegal characters“ oder „Your password may only contain alphanumeric characters“. Das ist absoluter Humbug und Pfusch am Bau.
                  Refining Linux: “Performing Push Backups – Part 1: rdiff-backup

                  Kommentar


                  • #10
                    Hallo, ich habe immer noch keine Lösung für dieses Problem gefunden. Kann mir nicht jemand helfen? Wäre echt wichtig.

                    Kommentar


                    • #11
                      wichtig führt hier meist zum gegenteiligen Effekt ...

                      hast du das mal ausprobiert, was istegelitz vorgeschlagen hat - nach der Eingabe das Passwort TESTWEISE" im Klartext wiedergeben lassen -

                      dann hast du 2 Möglichkeiten, wenn es beim MD5() Vergleich in der DB klemmt, kannst du diesen Vergleich ebenso in PHP machen ....wobei DB natürlich zu bevorzugen ist

                      aber .. nach Tests in meiner Webanwendung .. wenn es am Passwort nicht funktioniert stehen die Chancen sehr groß, dass es im Rest deiner Datenbank auch nicht richtig läuft ....
                      "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                      Kommentar


                      • #12
                        Das werde ich mal versuchen...

                        Kommentar


                        • #13
                          Also ich habe es eben mal in Klartext versucht, auch da nimmt er keine Passwört mit Umlauten an. Also liegt es wohl an der Zeichenkodierung, oder? Die Website selbst verwendet iso-8859-1. Ich habe gehört man soll es in utf8 kodieren...

                          Kommentar


                          • #14
                            Kodierung der Webseite, aller Scripte, der Datenbankverbindung und der Tabellen muss gleich sein.
                            Wenn du da eh dran rumfummelst, dann stell gleich alles auf UTF-8.

                            Wenn du im PHPmyadmin die Collation auf z.B. UTF-8 general ci umschaltest (bei jeder Spalte und für die Gesamttabelle erforderlich) dann kodiert mysql dir die schon vorhandenen Daten gleich um.

                            Dann baust du in die Formulare noch rein:
                            <form action="" method="post" name="form" id="form" accept-charset="UTF-8">
                            und
                            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

                            und codierst alle Scripte um auf "UTF-8 ohne BOM".
                            PHP-Code:
                            if ($var != 0) {
                              
                            $var 0;

                            Kommentar


                            • #15
                              Verwendest du einen Cookielogin und speicherst das Passwort im Klartext? Ein ähnliches Problem hatte ich auch mal mit einem Script, dort wurde ein Cookielogin verwendet und wenn ein Umlaut im Usernamen oder Passwort vorhanden war kam es immer wieder zu Loginproblemen.
                              Benötigst Du hilfe zu Php? Dann schau doch mal meine Tutorials an. Hier bekommst Du Php Webspace für deine Php Scripte.

                              Kommentar

                              Lädt...
                              X