You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C++ SHA-256基础实现结果与标准不符,求技术排查

SHA-256实现结果与标准不符,求助排查

我正基于维基百科SHA-2页面的SHA-256伪代码实现该算法,输入为字节粒度,所有数据均存储在栈上(暂不考虑效率)。我为最后一个512比特块的末尾单独创建了填充数组,严格遵循伪代码实现,但结果始终与标准SHA-256不符。对比过其他实现(部分可读性较差)没发现差异,已耗时数小时调试,各模块看似正常但结果仍错误。

环境与测试用例:

  • 目标设备为小端架构
  • 测试输入:1字节的字符串"G"(十六进制值0x47)

已尝试的修改与调试步骤:

  • 将指针转换替换为reinterpret_cast
  • 通过alignas(8)强制所有数组(包括字节数组)对齐
  • 使用-fno-strict-aliasing编译,无警告但结果未改变
  • 移除填充长度写入时的非对齐uint32_t内存访问,调整数组对齐方式
  • 重构代码添加5个可配置参数,测试所有32种参数组合,仍未匹配预期结果

内容的提问来源于stack exchange,提问作者Ilya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:17:01