Frage

Ich arbeite an einem PHP / MySQL-Login-System für ein Webprojekt.Nachdem Sie durchgesehen haben, und viel Art von Artikeln im Web-IVE haben ein grundlegendes Framework und begann, einen Code dafür zu schreiben.Ich bin jedoch in der Kennwortverschlüsselung ein wenig von einer Sackgasse.

Nach einigten Nächten, die das Lesen von Ich habe herausgefunden, dass:

    .
  • Ich sollte das Benutzerkennwort mit mindestens SHA1 oder SHA2
  • Ich sollte auch ein zufällig erzeugtes Salz verwenden (dies brauche ich Hilfe bei) und an das Passwort anhängen, bevor Sie es verschlüsseln
  • Das hashed-Passwort und das zufällig erzeugte Salz sollten in der Datenbank gespeichert und dann abgefragt und kombiniert / verschlüsselt und dann anschließend gegen das Passwort des Benutzers geprüft werden.

Mein Problem kommt in zufälliger Erzeugung des Salzes,

War es hilfreich?

Lösung

Möglichkeiten, an die ich denken kann:

  • Verwenden Sie mt_rand () in einer Schleife, um einen ASCII-Code auszuwählen, den entsprechenden Zeichen mit < a href="http://php.net/chr%28%29" rel="nofollow"> chr () und verkettet zu Salz.

    Hiermit können Salze mit beliebiger Länge geschaffen werden.

  • Definieren Sie eine Zeichenfolge mit verfügbaren Zeichen, verwenden Sie mt_rand () in einer Schleife, um zufällige Positionen auszuwählen Extrahieren Sie das Zeichen in der ausgewählten Position mit substr () oder mb_sstr () und Verkettung zu Salz.

    Hiermit können Salze mit einem gewählten Zeichensatz und einer Länge geschaffen werden.

  • Verwenden Sie eine eingebaute Funktion, die eine zufällige Zeichenfolge generiert (z. B. uniqid () ) und optional hat es .

    Das ist schnell und einfach.

Ich benutze normalerweise die zweite Option.

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top