What is the recommended method to securely encrypt passwords with a salt in PHP?

When storing passwords in a database, it is essential to securely encrypt them to prevent unauthorized access. One common method is to use a strong hashing algorithm like bcrypt along with a unique salt for each password. By salting the passwords before hashing, it adds an extra layer of security against brute force attacks and rainbow table attacks.

// Generate a random salt
$salt = mcrypt_create_iv(22, MCRYPT_DEV_URANDOM);

// Hash the password with bcrypt and the generated salt
$hashed_password = password_hash($password, PASSWORD_BCRYPT, ['salt' => $salt]);

// Store the hashed password and salt in the database
// Remember to store the salt along with the hashed password so it can be used for verification