【发布时间】:2012-01-25 16:43:56
【问题描述】:
我正在用 C 语言在 64 位 linux 架构上实现 SHA-512。SHA-512 接受 128 位作为要散列的数据长度。目前我正在使用两个 64 位长的整数来组成 128 位的值,但我有意将零放在前 64 位中,并且长度存储在剩余的低 64 位中。我为什么要这样做?
好吧,我认为在 64 位架构上,我可能永远不会得到超过 2^64 的值,或者可以吗?这是在 64 位架构上实现 SHA-512 的正确方法,还是有什么方法可以在我不知道的 64 位架构上满足 128 位值?需要注意的一点是,我正在根据 FIPS 180-3 实施 SHA-512。
任何帮助都会受到高度评价。
问候
【问题讨论】: