Avatar ·

Sicheres Hashing und Salt für Passwörter in PHP

Hallo zusammen! Ich bin ein PHP-Anfänger und versuche, die sichere Speicherung von Benutzerpasswörtern zu verstehen. Derzeit verwende ich MD5 mit Salt, aber mir wurde gesagt, dass das unsicher ist. Mein aktueller Code sieht so aus: ```php function createPassword($password) { $salt = 'my_very_secret_salt_12345'; return md5($salt . $password); } function checkPassword($password, $hash) { $salt = 'my_very_secret_salt_12345'; return md5($salt . $password) === $hash; } ``` Ich verstehe, dass MD5 veraltet ist, weiß aber nicht, womit ich es ersetzen soll. Ich habe von bcrypt, password_hash und password_verify gehört, verstehe aber nicht, wie man sie richtig verwendet. Hauptfragen: 1. Wie generiere ich ein Salt für jedes Passwort richtig? 2. Muss ich das Salt separat speichern und wie übergebe ich es bei der Überprüfung? 3. Welche Algorithmen gelten derzeit als sicher in PHP? 4. Wie schütze ich mich vor Brute-Force-Angriffen und Rainbow Tables? Ich wäre dankbar für detaillierte Codebeispiele mit Erklärungen. Ich möchte nicht nur verstehen, "wie"