Can you explain the difference between encryption, hashing, and encoding in the context of PHP?

Encryption involves converting data into a secret code to protect its confidentiality, while hashing involves converting data into a fixed-length string of characters that represents the original data. Encoding, on the other hand, involves converting data into a format that is suitable for transmission or storage. In PHP, functions like openssl_encrypt and openssl_decrypt can be used for encryption, functions like password_hash and password_verify can be used for hashing, and functions like base64_encode and base64_decode can be used for encoding.

// Example of encryption using OpenSSL
$data = "Hello, World!";
$key = "secretkey";
$encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, 0, 'randomiv');
echo $encrypted;

// Example of hashing a password
$password = "mypassword";
$hashedPassword = password_hash($password, PASSWORD_DEFAULT);
echo $hashedPassword;

// Example of encoding a string
$string = "Encode me!";
$encodedString = base64_encode($string);
echo $encodedString;