|
NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
|
SHA-256安全哈希算法实现。 更多...
类 | |
| struct | SHA256 |
| SHA-256哈希算法结构体 更多... | |
函数 | |
| NEFORCE_ALWAYS_INLINE_INLINE string | sha256 (const string_view data) |
| SHA-256哈希便捷函数(字符串视图版本) | |
| NEFORCE_ALWAYS_INLINE_INLINE string | sha256 (const string &data) |
| SHA-256哈希便捷函数(字符串版本) | |
| NEFORCE_ALWAYS_INLINE_INLINE byte_vector | sha256 (const cbyte_view data) |
| SHA-256哈希便捷函数(字节视图版本) | |
| NEFORCE_ALWAYS_INLINE_INLINE byte_vector | sha256 (const byte_vector &data) |
| SHA-256哈希便捷函数(字节向量版本) | |
SHA-256安全哈希算法实现。
本实现严格遵循以下标准规范:
SHA-2 算法规范:
相关国际标准:
密码模块验证标准:
| 特性 | 规范参数 |
|---|---|
| 算法 | SHA-256(SHA-2 家族成员) |
| 输出长度 | 256 位(32 字节) |
| 内部状态 | 8 个 32 位字(h0-h7) |
| 分组大小 | 512 位(64 字节) |
| 轮数 | 64 轮 |
| 最大输入长度 | 2^64 - 1 位 |
| 初始向量 (IV) | FIPS 180-4 §5.3.3 定义 |
| 填充方案 | Merkle–Damgård 强化(FIPS 180-4 §5.1.1) |
| 字节序 | 大端(FIPS 180-4 §3.2.2) |
| 安全强度 | 碰撞抗性 128 位,原像抗性 256 位 |
| 算法 | 输出长度 | 内部状态字 | 轮数 | 安全强度(碰撞) |
|---|---|---|---|---|
| SHA-224 | 224 位 | 8 × 32 位 | 64 | 112 位 |
| SHA-256 | 256 位 | 8 × 32 位 | 64 | 128 位 |
| SHA-384 | 384 位 | 8 × 64 位 | 80 | 192 位 |
| SHA-512 | 512 位 | 8 × 64 位 | 80 | 256 位 |
| SHA-512/256 | 256 位 | 8 × 64 位 | 80 | 128 位 |
SHA-256 是目前广泛推荐的安全哈希算法,适用于:
| NEFORCE_ALWAYS_INLINE_INLINE byte_vector sha256 | ( | const byte_vector & | data | ) |
SHA-256哈希便捷函数(字节向量版本)
| data | 输入数据 |
在文件 sha256.hpp 第 136 行定义.
引用了 data() , 以及 SHA256::hash().
| NEFORCE_ALWAYS_INLINE_INLINE byte_vector sha256 | ( | const cbyte_view | data | ) |
SHA-256哈希便捷函数(字节视图版本)
| data | 输入数据 |
在文件 sha256.hpp 第 129 行定义.
引用了 data() , 以及 SHA256::hash().
SHA-256哈希便捷函数(字符串版本)
| data | 输入字符串 |
在文件 sha256.hpp 第 120 行定义.
引用了 data() , 以及 SHA256::hash_hex().
| NEFORCE_ALWAYS_INLINE_INLINE string sha256 | ( | const string_view | data | ) |
SHA-256哈希便捷函数(字符串视图版本)
| data | 输入字符串 |
在文件 sha256.hpp 第 111 行定义.
引用了 data() , 以及 SHA256::hash_hex().