加密解密算法参考

常见加密算法 | Exploring

Namespaces | phpseclib API Documentation

AES对称加密

AES(高级加密标准,Advanced Encryption Standard)是一种对称加密算法,所谓对称加密就是加密与解密使用的密钥是一个,广泛用于数据加密和保护信息安全。

AES 支持不同长度的密钥,分别为 128 位、192 位和 256 位。密钥长度越长,加密的安全性越高,但计算复杂度也会相应增加。

模式 描述 典型应用
电码本 (ECB) 用相同的密钥分别对明文分组独立加密 单个数据的安全传输 (如一个加密密钥)
密文分组链接 (CBC) 加密算法的输入是上一个密文组和下一个明文组的异或 面向分组的通用传输认证
密文反馈 (CFB) 一次处理 s 位,上一块密文作为加密算法的输入,产生的伪随机数输出与明文异或作为下一单元的密文 面向数据流的通用传输认证
输出反馈 (OFB) 与 CFB 类似,只是加密算法的输入是上一次加密的输出,且使用整个分组 噪声信道上的数据流的传输
计数器 (CTR) 每个明文分组都与一个经过加密的计数器相异或。对每个后续分组计数器递增 面向分组的通用传输,用于高速需求
伽罗瓦 / 计数器模式 (GCM) 结合计数器模式 (CTR) 进行加密,同时使用伽罗瓦域计算认证标签,提供机密性、完整性和认证 常用于网络通信、存储加密等对数据安全和性能有综合要求的场景,如 TLS 协议中
Offset Codebook (OCF) 通常基于预先定义的码本,通过偏移操作对数据进行变换加密。在一些特定的轻量级加密场景或对资源受限设备适用的加密方案中使用,通过对码本的偏移映射实现明文到密文的转换 适用于资源受限环境(如某些物联网设备)下的简单数据加密需求,对计算资源和存储要求相对较低的场景

AES 密文

16进制字符只能是 0-9 和 A-F(不区分大小写)。"W" 不在这个范围内,所以抛出了 NumberFormatException。

如果是用户自定义密码,可以基于密码先Hash 然后使用