What are some encryption methods available in PHP for securing sensitive data in a database?

Sensitive data stored in a database should be encrypted to prevent unauthorized access in case of a data breach. PHP provides various encryption methods such as OpenSSL and mcrypt for securing sensitive data before storing it in the database.

// Encrypt data using OpenSSL
function encryptData($data, $key) {
    $iv = openssl_random_pseudo_bytes(openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = openssl_encrypt($data, 'aes-256-cbc', $key, 0, $iv);
    return base64_encode($iv . $encrypted);
}

// Decrypt data using OpenSSL
function decryptData($data, $key) {
    $data = base64_decode($data);
    $iv = substr($data, 0, openssl_cipher_iv_length('aes-256-cbc'));
    $encrypted = substr($data, openssl_cipher_iv_length('aes-256-cbc'));
    return openssl_decrypt($encrypted, 'aes-256-cbc', $key, 0, $iv);
}

// Example of encrypting and decrypting sensitive data
$key = 'secret_key';
$data = 'sensitive_data_to_encrypt';
$encryptedData = encryptData($data, $key);
$decryptedData = decryptData($encryptedData, $key);
echo $decryptedData; // Output: sensitive_data_to_encrypt