【发布时间】:2011-05-24 07:19:15
【问题描述】:
SHA-256 的定义似乎是,由单个“1”位组成的输入具有明确定义的哈希值,不同于“01”字节(因为填充是根据输入的比特长度完成的)。
但是,由于字节顺序问题以及我找不到支持单比特馈送的实现这一事实,我无法完全弄清楚这个正确的值是什么。
那么,由位“1”组成的 1 位长 输入的正确散列是什么? (不是 8 位长 byte[] { 1 } 输入)。
【问题讨论】:
-
您可以手动计算:en.wikipedia.org/wiki/… 但很快就会变得非常乏味。
-
不好意思加了这么多问号,愚蠢的cmets下限。
-
@Eric 比特数不是 8 的倍数有什么奇怪的?
-
@Eric 您似乎认为没有理由计算短输入的哈希值。我可以给你一个:验证实现的正确性。 The hash of the 0 bit input 可以作为测试用例之一。两个 1 位字符串也很方便。如果您不想回答这个问题,那么无论如何都不要回答,但我不明白为什么您似乎暗示这个问题很愚蠢。
-
@Eric Fortis:我认为这个问题没有什么古怪之处。散列函数本身是根据任意长的位串定义的,所以为什么不应该有人对实际计算这样的任意位串感兴趣。而对于测试,显然你想测试一个或两个位这样的琐碎案例。
标签: algorithm language-agnostic hash sha