前言
手上有个api对接需求,要用到AES加密,要用到openssl_encrypt函数,记录一下,鉴权要求大概如下。
- 将明文先base64加密,后取前16位
- 判断字符串的字节型数据长度是否为16倍整,如不是则进行补充( PKCS#7标准)
- 对字符串进行AES加密后base64加密,其中
iv=A-16-Byte-String
介绍
参数说明:
- $data 加密明文
- $method 加密方法 这里使用
AES-256-CBC
- $passwd 加密密钥
- $options 数据格式选项(可选)
OPENSSL_RAW_DATA
, OPENSSL_ZERO_PADDING,OPENSSL_NO_PADDING - $iv 密初始化向量(可选)
实现
将AES加密,解密(用不到),长度裁剪等功能先封装成函数
实现
补充:看网上资料,当openssl_encrypt的options=OPENSSL_RAW_DATA,会自动对字符串进行16位的PKCS#7标准填充。