Warum gibt es eine maximale Passwortlänge
So, ich durfte mich gerade schon wieder über einen Loginservice aufregen, bei dem verlangt wird, dass das Passwort "zwischen 8 und 12 Zeichen" hat. Eine minimale Passwortlänge mag ich ja noch einsehen, aber warum eine maximale? Ein seriöses Login-Formular sollte doch die Passwörter sowieso hashen und nicht im Klartext speichern, wo ist also das Problem, längere Passwörter zu akzeptieren?
Vielleicht wisst ihr Bescheid?
7 Antworten
aber warum eine maximale?
Kann ich eigentlich auch nicht nachvollziehen. Ist auch die Frage ob die die Passwörter auch wirklich hashen oder irgendwelchen Mist damit machen. Ich kann mir noch vorstellen, dass man lange Passwörter öfter vergisst und man bei 12 Zeichen gezwungen ist sein 0815 Passwort zu benutzen. Aber da der Support eh nicht viel mit vergessenen Passwörtern zu tun hat fällt das eigentlich auch flach.
Also zunächst mal, solltest Du dir im klaren sein, dass es nicht nur "die" Hash-Methode gibt, sondern unterschiedliche. Man kann heutzutage nur hoffen, dass md5 und sha1 nicht mehr von größeren Anbietern verwendet werden. Diese erzielen jedoch die gleiche Länge eines Strings.
Mit Methoden wie bcrypt hat der Hash nicht immer die gleiche Länge. Langes Passwort = Langer Hash = Mehr Rechenaufwand (je nach Konfiguration). Und spätestens wenn eine Beschränkung der Datenbank greift (etwa bei der VARCHAR Maximallänge von 255 Zeichen, sollte dieser Feld-Typ verwendet werden), ließe sich das Passwort nicht mehr korrekt evaluieren.
Ich denke nicht, dass bcrypt für Passworthashes verwendet wird. Alle "guten" Kandidaten für Passworthashalgorithmen haben eine feste Outputlänge.
Na, dann bin ich mal gespannt, was Du unter "guten" Kandidaten verstehst.
Das Problem an den Methoden mit fester (und kurzer) Länge, wie etwa bei md5 & Co. ist nämlich, dass diese sich häufig problemlos durch einen Datenbank-Abgleich auflösen lassen.
Naja, je nach Datenverarbeitung kann die Webseite (genauer: Die Datenbank dahinter) Strings von bestimmter Länge nicht mehr verarbeiten. Wenn du also den Hash eines Passwortes bildest (der bekanntlich ja länger als das Passwort selbst ist) so kann die Datenbank diesen String irgendwann nicht mehr auswerten => also gibt es maximale Passwortlängen
Hashes eines bestimmten Typs sind für jeden String gleich lang. Unter anderem heißt das, dass der Hash eines Passworts nicht zwingend länger als das Passwort selbst ist.
Um Speicherplatz Auf dem Server zu sparen.
Das macht keinen Sinn, wenn die Passwörter gehasht werden (, was sie sollten!)
Naja dass es ein Maximum geben muss, ist ja klar, da man nicht unendlich viel Speicher (nur für DEIN Passwort) auf dem Server hat.
Die Frage muss also lauten: Wieso eine maximale Passwortlänge von gerade mal 12 Zeichen?
Außerdem macht das keinen Unterschied wenn die Passwörter gehasht werden.
Naja, bei einem PW von 1000 Zeichen hätte man gerade mal eine Speichergröße von 1-4 kB (je nach Codierung)
Naja, mein "0815-Passwort" hat mehr als 12 Zeichen, deswegen bin ich so genervt ;)