SHA-256 的定义似乎是这样的,即由单个“1”位组成的输入具有明确定义的哈希值,与“01”字节的哈希值不同(因为填充是根据输入的位长度完成的)。
但是,由于字节序问题以及我找不到的任何实现都支持以单个位为单位的事实,我无法完全弄清楚这个正确的值是什么。
那么,由位“1”组成的1 位长 输入的正确散列值是多少? (不是 8 位长 byte[] { 1 } 输入)。
最佳答案
OK,按照我自己的实现:
1 位字符串“1”:
B9DEBF7D 52F36E64 68A54817 C1FA0711 66C3A63D 384850E1 575B42F7 02DC5AA1
1 位字符串“0”:
BD4F9E98 BEB68C6E AD3243B1 B4C7FED7 5FA4FEAA B1F84795 CBD8A986 76A2A375
我已经在几个标准的 8 位倍数输入(包括 0 位字符串)上测试了这个实现,结果是正确的。
(当然这个问题的重点是首先验证上面的输出,所以谨慎使用...)
关于algorithm - 单个 "1"位的 SHA-256 哈希值是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4422970/