What are some common methods for encrypting and decrypting data in PHP applications?

One common method for encrypting and decrypting data in PHP applications is using the OpenSSL extension, which provides functions for encryption and decryption using various algorithms such as AES. Another method is using the mcrypt extension, although it is deprecated as of PHP 7.1. Additionally, PHP also provides functions like base64_encode and base64_decode for encoding and decoding data.

// 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);
}