3v4l.org

run code in 300+ PHP versions simultaneously
<?php function encrypt($key, $data){ $b = mcrypt_get_block_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC); $enc = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, ''); $iv = mcrypt_create_iv(mcrypt_enc_get_iv_size($enc), MCRYPT_DEV_URANDOM); mcrypt_generic_init($enc, md5($key), $iv); // PKCS7 Padding from: https://gist.github.com/1077723 $dataPad = $b-(strlen($data)%$b); $data .= str_repeat(chr($dataPad), $dataPad); $encrypted_data = mcrypt_generic($enc, $data); mcrypt_generic_deinit($enc); mcrypt_module_close($enc); return array( 'data' => base64_encode($encrypted_data), 'iv' => base64_encode($iv) ); } function decrypt($key, $iv, $encryptedData){ $iv = base64_decode($iv); $enc = mcrypt_module_open(MCRYPT_RIJNDAEL_256, '', MCRYPT_MODE_CBC, ''); mcrypt_generic_init($enc, md5($key), $iv); $encryptedData = base64_decode($encryptedData); $data = mdecrypt_generic($enc, $encryptedData); mcrypt_generic_deinit($enc); mcrypt_module_close($enc); // PKCS7 Padding from: https://gist.github.com/1077723 $dataPad = ord($data[strlen($data)-1]); return substr($data, 0, -$dataPad); } $data = 'Hello world!'; $key = '1234567890'; $enc = encrypt($key, $data); echo "Encrypted: '{$enc['data']}'\n"; $dec = decrypt($key, $enc['iv'], $enc['data']); echo "Decrypted: '$dec'";

preferences:
32.92 ms | 402 KiB | 5 Q