3v4l.org

run code in 200+ php & hhvm versions
Bugs & Features
<?php /** * Helper library for CryptoJS AES encryption/decryption * Allow you to use AES encryption on client side and server side vice versa * * @author BrainFooLong (bfldev.com) * @link https://github.com/brainfoolong/cryptojs-aes-php */ /** * Decrypt data from a CryptoJS json encoding string * * @param mixed $passphrase * @param mixed $jsonString * @return mixed */ function cryptoJsAesDecrypt($passphrase, $jsonString){ $jsondata = json_decode($jsonString, true); $salt = hex2bin($jsondata["s"]); $ct = base64_decode($jsondata["ct"]); $iv = hex2bin($jsondata["iv"]); $concatedPassphrase = $passphrase.$salt; $md5 = array(); $md5[0] = md5($concatedPassphrase, true); $result = $md5[0]; for ($i = 1; $i < 3; $i++) { $md5[$i] = md5($md5[$i - 1].$concatedPassphrase, true); $result .= $md5[$i]; } $key = substr($result, 0, 32); $data = openssl_decrypt($ct, 'aes-256-cbc', $key, true, $iv); return json_decode($data, true); } /** * Encrypt value to a cryptojs compatiable json encoding string * * @param mixed $passphrase * @param mixed $value * @return string */ function cryptoJsAesEncrypt($passphrase, $value){ $salt = openssl_random_pseudo_bytes(8); $salted = ''; $dx = ''; while (strlen($salted) < 48) { $dx = md5($dx.$passphrase.$salt, true); $salted .= $dx; } $key = substr($salted, 0, 32); $iv = substr($salted, 32,16); $encrypted_data = openssl_encrypt(json_encode($value), 'aes-256-cbc', $key, true, $iv); $data = array("ct" => base64_encode($encrypted_data), "iv" => bin2hex($iv), "s" => bin2hex($salt)); return json_encode($data); } echo cryptoJsAeaEncrypt("test", "foo");
Output for 7.0.0 - 7.2.0
Fatal error: Uncaught Error: Call to undefined function cryptoJsAeaEncrypt() in /in/7jehl:57 Stack trace: #0 {main} thrown in /in/7jehl on line 57
Process exited with code 255.
Output for 5.0.0 - 5.6.28
Fatal error: Call to undefined function cryptoJsAeaEncrypt() in /in/7jehl on line 57
Process exited with code 255.
Output for 4.4.5 - 4.4.9
Fatal error: Call to undefined function: cryptojsaeaencrypt() in /in/7jehl on line 57
Process exited with code 255.
Output for 4.3.2 - 4.4.4
Fatal error: Call to undefined function: cryptojsaeaencrypt() in /in/7jehl on line 57
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Call to undefined function: cryptojsaeaencrypt() in /in/7jehl on line 57