Avatar ·

Wie man bcrypt zum Hashen von Passwörtern in PHP richtig verwendet

Hallo zusammen! Ich bin ein PHP-Anfänger und komme mit der sicheren Speicherung von Passwörtern nicht klar. Derzeit verwende ich einfach die Funktion md5() oder sha1() zum Hashen, aber irgendwo habe ich gelesen, dass das falsch und unsicher ist. Man sagt, man sollte bcrypt verwenden.

<?php
// Mein aktueller Code (ich weiß, dass er schlecht ist)
$password = 'my_secret_pass';
$hash = md5($password);
// Speichere $hash in der Datenbank

// Überprüfung beim Login
if (md5($_POST['password']) == $hash_from_db) {
    echo "Erfolgreicher Login!";
}
?>

Ich habe von bcrypt gehört, verstehe aber nicht, wie ich es einbinden und verwenden soll. Angeblich gibt es in PHP eine eingebaute Funktion, aber ich weiß nicht, wie sie heißt und wie man richtig damit arbeitet. Außerdem verwirrt mich, dass man ein "Salt" angeben muss – was ist das und wo speichert man es? Muss man für jedes Passwort ein neues Salt generieren? Und wie überprüft man dann das Passwort beim Login des Benutzers?

Bitte erklärt mir Schritt für Schritt,