What are the best practices for securely storing and comparing passwords in a PHP application?

When storing passwords in a PHP application, it is crucial to securely hash them using a strong hashing algorithm like bcrypt. This ensures that even if the database is compromised, the passwords cannot be easily decrypted. When comparing passwords for login, always use a secure method like password_verify() to validate the user-entered password against the hashed password stored in the database.

// Storing a password securely using bcrypt
$password = 'secret_password';
$hashedPassword = password_hash($password, PASSWORD_BCRYPT);

// Comparing a user-entered password with the hashed password
$userInput = 'user_input_password';
$storedPassword = 'hashed_password_from_database';

if (password_verify($userInput, $storedPassword)) {
    echo 'Password is correct!';
} else {
    echo 'Password is incorrect.';
}