一文详解PHP怎样实现AES-128-CBC-PKCS5Padding加密
更新时间:2023-09-26前言
PHP是一种广泛用于Web开发的脚本语言,提供了丰富的加密算法库。本文将介绍如何使用PHP实现AES-128-CBC-PKCS5Padding加密算法。
代码实现
首先,需要确保你的PHP安装了OpenSSL扩展。接下来,我们将逐步实现AES-128-CBC-PKCS5Padding加密算法。
// 生成16字节的随机初始化向量(IV) $iv = openssl_random_pseudo_bytes(16); // 设置加密算法、密钥和初始化向量 $cipher = "AES-128-CBC"; $key = "your_key_here"; // 加密函数 function encrypt($data) { global $cipher, $key, $iv; $encrypted = openssl_encrypt($data, $cipher, $key, OPENSSL_RAW_DATA, $iv); return base64_encode($iv . $encrypted); } // 解密函数 function decrypt($encryptedData) { global $cipher, $key; $data = base64_decode($encryptedData); $iv = substr($data, 0, 16); $encrypted = substr($data, 16); return openssl_decrypt($encrypted, $cipher, $key, OPENSSL_RAW_DATA, $iv); }
代码解释
上述代码中,我们首先使用openssl_random_pseudo_bytes
函数生成一个长度为16字节的随机初始化向量(IV)。
然后,我们设置了要使用的加密算法为AES-128-CBC,密钥为your_key_here
(请替换为你自己的密钥)。
接下来,我们定义了encrypt
函数和decrypt
函数来实现加密和解密操作。
在encrypt
函数中,我们使用openssl_encrypt
函数进行加密,并将IV和加密后的数据进行Base64编码后返回。
在decrypt
函数中,我们首先对传入的密文进行Base64解码,然后使用IV和openssl_decrypt
函数进行解密,并返回原始明文。
总结
使用以上代码,你可以方便地在PHP中实现AES-128-CBC-PKCS5Padding加密算法。确保将密钥替换为你自己的安全密钥,并根据需要修改加密算法和其他相关参数。