Tach!
aktuell schließe ich in meinem Projekt Sonderzeichen in Passwörtern aus.
Würde diese aber gern zulassen, nun kann ich aber nicht überschauen, ob es dadurch zu Problemen beim Speichern des des Passworthashes kommen kann.
Spezielle Perl-Fragen kann ich nicht beantworten. Aber das Grundprinzip ist überall gleich. Was verarbeitet ein Hash? Sind es Zeichen oder sind es Bytes? Es ist eine mathematische Operation, also Zahlenwerte, also Bytes. Das heißt, solange die Bytes/Zahlenwerte dieselben sind, kommt beim Hash auch dasselbe Ergebnis raus. Deine Sorge sollte also sein, dass die eingegebenen Zeichen stets mit denselben Bytes kodiert werden. Ein ä beispielsweise darf nicht einmal ISO-8859-1-kodiert daherkommen und ein anderes Mal UTF-8-kodiert. Das wären unterschiedliche Bytes und damit unterschiedliche Hash-Werte.
Und macht es Sinn, Umlaute auszuschließen, da der Nutzer, wenn er an einem Gerät im Ausland sitzt, ja dann diese gar nicht eingeben kann?
Diese Frage musst du für dein Projekt beantworten. Muss der Nutzer unter allen Umständen sein Passwort eingeben können? Dann fallen eine ganze Menge Zeichen weg, nicht nur Umlaute. Ob sie ausgeschlossen werden müssen oder nur ein Hinweis auf die Problematik angezeigt wird oder der Nutzer es selbst wissen/merken muss, ist deine Entscheidung.
dedlfix.