php AES 加密解密示例。
<?php /** * Created by PhpStorm. * User: yhm * Date: 20-1-10 * Time: 上午10:12 */ define('ENCODE_KEY', 'phpernote.com'); class AES { //AES-128-CBC 加密算法。openssl_get_cipher_methods() 可获取有效密码方式列表。 /** * 参数说明: * $data: 加密明文 * $method: 加密方法 * $passwd: 加密密钥 * $iv: 加密初始化向量(可选) */ public static function encrypt($string, $key, $iv) { $data = @openssl_encrypt($string, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv); $data = strtolower(bin2hex($data)); return $data; } /** * 参数说明: * $data: 解密密文 * $method: 解密加密方法 * $passwd: 解密密钥 * $iv: 解密初始化向量(可选) */ public static function decrypt($string, $key, $iv) { $decrypted = @openssl_decrypt(hex2bin($string), 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv); return $decrypted; } } /** * 加密 * @param string $string * @return string */ function encode($string) { if (!$string) { return ''; } return trim(base64_encode(AES::encrypt(base64_encode(urlencode($string)), ENCODE_KEY, md5(ENCODE_KEY, true)))); } /** * 解密 * @param string $string * @return string */ function decode($string) { if (!$string) { return ''; } return trim(urldecode(base64_decode(AES::decrypt(base64_decode($string), ENCODE_KEY, md5(ENCODE_KEY, true))))); }