In what situations is it necessary to encrypt data in a PHP database for privacy reasons?

It is necessary to encrypt data in a PHP database for privacy reasons when storing sensitive information such as passwords, credit card numbers, or personal details. Encrypting this data ensures that even if the database is compromised, the information remains secure and unreadable to unauthorized users.

// Encrypt data before storing in the database
function encryptData($data, $key) {
    $encrypted = openssl_encrypt($data, 'AES-256-CBC', $key, 0, '1234567890123456');
    return base64_encode($encrypted);
}

// Decrypt data when retrieving from the database
function decryptData($data, $key) {
    $decrypted = openssl_decrypt(base64_decode($data), 'AES-256-CBC', $key, 0, '1234567890123456');
    return $decrypted;
}

// Example usage
$key = 'your_secret_key';
$originalData = 'sensitive_data';
$encryptedData = encryptData($originalData, $key);
echo 'Encrypted data: ' . $encryptedData . PHP_EOL;
$decryptedData = decryptData($encryptedData, $key);
echo 'Decrypted data: ' . $decryptedData . PHP_EOL;