AES原创
# Openssl
php 7 8
# 加密
openssl_encrypt(
string $data,
string $cipher_algo,
string $passphrase,
int $options = 0,
string $iv = "",
string &$tag = null,
string $aad = "",
int $tag_length = 16
): string|false
- data 要加密的明文信息。
如果加密的内容为数组,可以使用json_encode()
将其转换为字符串,在进行加密 - cipher_algo,密码学方式,即加密方式。
- passphrase,若
passphrase
比预期的端,将默认使用nul
填充,若比预期的长度更长,将静默截断。- 128 192 256
分别对应16位、24位、32位密钥长度。[1位8字节] - 5种加密模式
# CBC 密码分组链接模式 Cipher Block Chaining
又称
密码分组链接
先将明文切分成若干小段,然后每一小段与初始块或者上一段的密文段进行异或运算后,再与密钥进行加密。# ECB 电码本模式 Electronic Codebook Book
将整个明文分成若干段相同的小段,然后对每一小段进行加密。
# OCF 计算器模式 Counter
计算器模式不常见,在CTR模式中, 有一个自增的算子,这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是在计算器不能维持很长的情况下,密钥只能使用一次。
# CFB 密码反馈模式 Cipher FeedBack
# OFB 输出反馈模式 Output FeedBack
- 128 192 256
- options,是以下标记的按位或:
OPENSSL_RAW_DATA
、OPENSSL_ZERO_PADDING
OPENSSL_RAW_DATA方式【会用PKCS#7进行补位】
OPENSSL_ZERO_PADDING方式『0填充』
OPENSSL_NO_PADDING【不填充,需要手动填充】 - iv,非
NULL
的初始化向量
必须是16位字符。 - tag,使用 AEAD 密码模式(
GCM
或CCM
)时传引用的验证标签。 - aad,附加的验证数据。
- tag_length,验证
tag
的长度。GCM
模式时,它的范围是4
到16
上次更新: 2022/08/23, 18:12:45