2 Stimmen

Warum wird ein Passwort-Hash auf 14 Zeichen gekürzt?

Ich arbeite an einem Code, und an einem bestimmten Punkt wird ein Kennwort vorbereitet, das in einer Datenbank gespeichert werden soll. In groben Pseudocode ist es das folgende tun:

encrypted_password = truncate(hash(password), 14)

D. h. Berechnung des Hashwerts des Kennworts und anschließendes Kürzen des Hashwerts auf 14 Zeichen.


Weiß jemand, warum die Anwendung den Hash auf diese Weise abschneidet? Es ist sehr absichtlich, so dass ich vermute, es ist, um den Hash mit einem ziemlich Standard-Typ von Passwort-Speicher, die ich nicht kenne, kompatibel zu machen.

(Ignorieren Sie bitte, dass dies keine gute Möglichkeit ist, Passwörter zu speichern, kein Salting, usw.)

2voto

Michael Trausch Punkte 3147

Der einzige Grund, den ich mir vorstellen kann, ist die Aufrechterhaltung der Kompatibilität mit einem Altsystem. Das wäre in der Tat der einzige Grund, den ich mir vorstellen kann, um bewusste Entscheidungen zu treffen und die Sicherheit in jedem Fall zu opfern.

Stellen Sie sich ein Netz vor, in dem es zum Beispiel wahnsinnig alte UNIX-Rechner gibt, die nur in der Lage sind, acht Zeichen lange Passwörter mit der klassischen crypt()-Funktion zu verwenden. Damit sie sich gegenüber anderen Systemen authentifizieren können, oder damit andere Systeme sich gegenüber diesen alten UNIX-Systemen authentifizieren können, müssen alle die Authentifizierungsdaten mit der gleichen Methode manipulieren.

Der einzige Grund für die Übertragung von Kennwörtern (gehasht, gehasht + gesalzen oder anderweitig) über das Netz besteht darin, dass man sich an ein Altsystem oder ein System halten will, das ansonsten "veraltete Anforderungen" erfüllt. Das Gleiche gilt für Systeme, die ansonsten relativ schwach im Sinne der Sicherheit sind.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X