NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
AES-256

AES-256对称加密算法实现 更多...

AES-256 的协作图:

struct  AES256
 AES-256加密算法结构体 更多...

函数

NEFORCE_ALWAYS_INLINE_INLINE string aes256_encrypt (const string_view data, const string_view key_hex)
 AES-256加密便捷函数
NEFORCE_ALWAYS_INLINE_INLINE string aes256_decrypt (const string_view encrypted_hex, const string_view key_hex)
 AES-256解密便捷函数

详细描述

AES-256对称加密算法实现

遵循的国际标准

本实现严格遵循以下密码学与信息安全相关标准规范:

AES 算法标准:

工作模式标准:

填充方案标准:

实现细节

特性 规范参数
算法 AES-256 (密钥长度 256 位,分组大小 128 位)
轮数 14 轮
密钥扩展 240 字节扩展密钥
ECB 模式 电子密码本,无 IV
CBC 模式 密码分组链接,需 16 字节 IV
GCM 模式 Galois 计数器模式,认证加密
GCM 标签长度 12-16 字节 (推荐 16 字节)
GCM IV 推荐长度 12 字节 (96 位)
填充方案 PKCS#7 (RFC 5652)
注解
本实现使用常量时间比较函数防止时序攻击, 符合 NIST SP 800-38D 附录 C 的安全要求。
警告
ECB 模式不应单独用于加密多个数据块,因其不能隐藏数据模式。 推荐使用 CBC 或 GCM 模式进行安全加密。
参见
https://csrc.nist.gov/projects/cryptographic-standards-and-guidelines
https://www.iso.org/committee/45306.html

函数说明

◆ aes256_decrypt()

NEFORCE_ALWAYS_INLINE_INLINE string aes256_decrypt ( const string_view encrypted_hex,
const string_view key_hex )

AES-256解密便捷函数

参数
encrypted_hex加密数据的十六进制字符串
key_hex十六进制密钥
返回
解密后的字符串

在文件 aes256.hpp228 行定义.

引用了 AES256::decrypt_ecb_hex().

◆ aes256_encrypt()

NEFORCE_ALWAYS_INLINE_INLINE string aes256_encrypt ( const string_view data,
const string_view key_hex )

AES-256加密便捷函数

参数
data要加密的字符串
key_hex十六进制密钥
返回
加密后的十六进制字符串

在文件 aes256.hpp206 行定义.

引用了 data() , 以及 AES256::encrypt_ecb_hex().