① 在PHP里实现AES的加密解密功能(包括mcrypt版本和openssl版本)
在PHP里实现AES的加密解密功能,可以使用mcrypt扩展和openssl扩展,具体实现方式如下:
使用mcrypt扩展
- 安装与配置:确保mcrypt扩展已安装并启用。
- 加密方法:默认使用AES128CBC方法。
- 加密步骤:
- 准备数据:原数据、AES私钥、初始化向量。
- 加密:使用mcrypt_encrypt函数进行加密。
- 存储:加密结果通常需要与IV一起存储,以便解密时使用。
- 解密步骤:
- 提取数据:从存储中提取加密数据和IV。
- 解密:使用mcrypt_decrypt函数进行解密。
- 注意事项:mcrypt扩展的代码相对复杂,且需要手动处理补位逻辑。
使用openssl扩展
- 安装与配置:openssl扩展通常默认安装,确保已启用。
- 加密方法:推荐使用AES256CBC方法,自动处理补位逻辑。
- 加密步骤:
- 准备数据:原数据、AES私钥、初始化向量。
- 加密:使用openssl_encrypt函数进行加密。
- 存储:加密结果和IV通常需要一起存储。
- 解密步骤:
- 提取数据:从存储中提取加密数据和IV。
- 解密:使用openssl_decrypt函数进行解密。
- 优点:openssl版本更高效,代码更简洁,且自动处理补位逻辑。
总结: mcrypt扩展:适用于PHP7.1以下版本,代码复杂,需手动处理补位。 openssl扩展:适用于PHP7及以上版本,高效简洁,自动处理补位,推荐使用。