Are there better alternatives to mcrypt for encryption in PHP?

The mcrypt extension in PHP is considered outdated and deprecated. A better alternative for encryption in PHP is to use the OpenSSL extension, which provides more secure encryption algorithms and better support for modern cryptographic standards.

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

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

// Example usage
$key = "secretkey";
$data = "Hello, world!";
$encryptedData = encryptData($data, $key);
echo "Encrypted data: " . $encryptedData . "\n";
$decryptedData = decryptData($encryptedData, $key);
echo "Decrypted data: " . $decryptedData . "\n";