Heim > Artikel > Backend-Entwicklung > Ist es angemessen, die Korrektheit einer Zeichenfolge zu vergleichen, indem die ersten n Zeichen des Hash-Ergebnisses einer Zeichenfolge abgefangen werden?
Natürlich müssen wir das vollständige Hash-Ergebnis speichern, wenn wir das Benutzerkennwort speichern, aber manchmal ist das Hash-Ergebnis sehr lang und in manchen Fällen wirkt es aufgebläht. Ich möchte zum Beispiel ein einfaches Cookie-Anti-Fälschungs-Programm schreiben. Die Idee besteht darin, den ursprünglichen Cookie-Wert mit mcrypt reversibel zu verschlüsseln, dann Salt zum Wert hinzuzufügen, um sha256 zu berechnen und die ersten 10 Ziffern des sha256-Ergebnisses abzufangen und anzuhängen bis zum endgültigen Cookie-Wert. Während der Überprüfung müssen Sie lediglich den Cookie-Wert aufteilen, das vorherige Zeichen entschlüsseln und den sha256 berechnen, um die ersten 10 Bits mit dem folgenden Wert zu vergleichen. Ist das sicher?
Natürlich müssen wir das vollständige Hash-Ergebnis speichern, wenn wir das Benutzerkennwort speichern, aber manchmal ist das Hash-Ergebnis sehr lang und in manchen Fällen wirkt es aufgebläht. Ich möchte zum Beispiel ein einfaches Cookie-Anti-Fälschungs-Programm schreiben. Die Idee besteht darin, den ursprünglichen Cookie-Wert mit mcrypt reversibel zu verschlüsseln, dann Salt zum Wert hinzuzufügen, um sha256 zu berechnen und die ersten 10 Ziffern des sha256-Ergebnisses abzufangen und anzuhängen bis zum endgültigen Cookie-Wert. Während der Überprüfung müssen Sie lediglich den Cookie-Wert aufteilen, das vorherige Zeichen entschlüsseln und den sha256 berechnen, um die ersten 10 Bits mit dem nachfolgenden Wert zu vergleichen. Ist das sicher?
Der Passwort-Hash-Wert sollte nicht im Cookie platziert werden. Sie können ein zusätzliches Token generieren, um die Anmeldung zu überprüfen.
Dieser Ansatz ist immer noch sehr verbreitet, indem zuerst 32 Bit berechnet und dann die mittleren 16 Bit abgefangen werden. Wenn es zu kurz ist, müssen Sie natürlich vorsichtig sein, dass es nicht mit roher Gewalt geknackt wird