2.0 KiB
2.0 KiB
NAC哈希算法迁移报告
版本信息
- 版本: v2.1.0
- 日期: 2026-02-07
- 变更: Blake3 → SHA3-384
核心变更
1. Hash类型定义
- 旧: 32字节 (Blake3)
- 新: 48字节 (SHA3-384)
2. 算法替换
- ❌ Blake3 (32字节输出)
- ✅ SHA3-384 (48字节输出)
3. 类型系统
- Address: 32字节(保持不变)
- Hash: 48字节(已更新)
代码变更统计
| 组件 | Blake3引用 | SHA3-384引用 | 状态 |
|---|---|---|---|
| NAC_UDM | 0 | 125 | ✅ 完成 |
| Charter标准库 | 0 | 125 | ✅ 完成 |
| 总计 | 0 | 250 | 100% |
API变更
Rust API
// 旧API(已弃用)
Hash::blake3(data) // ❌ 已移除
// 新API
Hash::sha3_384(data) // ✅ NAC标准
Charter API
// 旧API(已弃用)
Hash::blake3(data) // ❌ 已移除
// 新API
Hash::sha3_384(data) // ✅ NAC标准
新增功能
二进制字符串支持
// 转换为二进制字符串(8组)
let binary = hash.to_binary_string();
// 输出: "00101010 11010011 ... " (48组,共384位)
// 从二进制字符串创建
let hash = Hash::from_binary_string(binary)?;
测试验证
SHA3-384已知测试向量
// 空字符串的SHA3-384哈希
SHA3-384("") = 0c63a75b845e4f7d01107d852e4c2485c51a50aaaa94fc61995e71bbee983a2ac3713831264adb47fb6bd1e058d5f004
编译状态
- ✅ 编译通过
- ✅ 0个错误
- ⚠️ 310个警告(文档缺失,不影响功能)
迁移指南
对于开发者
- 更新所有
Hash::blake3()调用为Hash::sha3_384() - 更新Hash类型的字节长度假设(32 → 48)
- 更新序列化/反序列化代码以支持48字节
对于用户
- 无需任何操作,向后兼容
- 新生成的哈希值将使用SHA3-384
NAC合规性
✅ 100% NAC原生
- 使用SHA3-384(NIST标准)
- 48字节哈希输出
- 支持二进制字符串转换
- 完全去以太坊化(无Blake3/Keccak256)