protected static function aes_cbc_encrypt($string, $key, $iv) { $key_size = self::$key_size; if (!isset(self::$openssl_encrypt_exists)) { self::$openssl_encrypt_exists = function_exists('openssl_encrypt') && version_compare(PHP_VERSION, '5.3.3', '>='); // We need $iv parameter. } if (self::$openssl_encrypt_exists) { return openssl_encrypt($string, "aes-{$key_size}-cbc", $key, true, $iv); } // Info: http://www.chilkatsoft.com/p/php_aes.asp // http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); if (mcrypt_generic_init($cipher, $key, $iv) != -1) { $encrypted = mcrypt_generic($cipher, self::pkcs7_pad($string)); mcrypt_generic_deinit($cipher); mcrypt_module_close($cipher); return $encrypted; } return false; }
protected static function openssl_encrypt_exists() { if (!isset(self::$openssl_encrypt_exists)) { self::$openssl_encrypt_exists = function_exists('openssl_encrypt') && version_compare(PHP_VERSION, '5.3.3', '>='); } return self::$openssl_encrypt_exists; }
protected static function aes_cbc_encrypt($string, $key, $iv) { $key_size = self::$key_size; if (!isset(self::$openssl_encrypt_exists)) { self::$openssl_encrypt_exists = function_exists('openssl_encrypt') && version_compare(PHP_VERSION, '5.3.3', '>='); // We need $iv parameter. } if (self::$openssl_encrypt_exists) { return openssl_encrypt($string, "aes-{$key_size}-cbc", $key, true, $iv); } if (!isset(self::$mcrypt_exists)) { self::$mcrypt_exists = function_exists('mcrypt_encrypt'); } if (self::$mcrypt_exists) { // Info: http://www.chilkatsoft.com/p/php_aes.asp // http://en.wikipedia.org/wiki/Block_cipher_modes_of_operation $cipher = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, ''); if (mcrypt_generic_init($cipher, $key, $iv) != -1) { $encrypted = mcrypt_generic($cipher, self::pkcs7_pad($string)); mcrypt_generic_deinit($cipher); mcrypt_module_close($cipher); return $encrypted; } return false; } if (!isset(self::$openssl_cli_exists)) { self::$openssl_cli_exists = self::openssl_cli_exists(); } if (self::$openssl_cli_exists) { $cmd = 'echo ' . self::escapeshellarg($string) . ' | openssl enc -e -a -A -aes-' . $key_size . '-cbc -K ' . self::strtohex($key) . ' -iv ' . self::strtohex($iv); exec($cmd, $output, $return); if ($return == 0 && isset($output[0])) { return base64_decode($output[0]); } return false; } trigger_error('GibberishAES: System requirements failure, please, check them.', E_USER_WARNING); return false; }