What is the difference between encrypting and hashing in terms of password security in PHP?

Encrypting and hashing are two different methods used for password security in PHP. Encrypting involves encoding the password using a key that can be decrypted to retrieve the original password. This method is reversible, meaning the original password can be obtained if the encryption key is known. On the other hand, hashing involves converting the password into a fixed-length string using a one-way algorithm. This means that the original password cannot be retrieved from the hash value, providing better security as the hashed password cannot be reversed.

// Encrypting a password using OpenSSL
$password = "secret";
$key = "mykey";
$encrypted_password = openssl_encrypt($password, 'AES-128-ECB', $key);

// Hashing a password using bcrypt
$hashed_password = password_hash($password, PASSWORD_BCRYPT);