【发布时间】:2022-01-10 03:51:44
【问题描述】:
我刚刚玩过 SHA256,我注意到一些奇怪的事情:十六进制摘要的长度是 32 个字符,每个字符可以是 16 个不同字符之一(0-9,a-f)。如果我错了,现在纠正我,但这不是 256。16*32 是 512。 那么......我在这里错过了什么?为什么要多出 16 个字母? 提前感谢您的帮助。
【问题讨论】:
-
你错误地乘以 32*16,你应该乘以 32*4=128,因为十六进制是 4 位的。您在哪里看到 SHA-256 哈希 32 十六进制输出?
-
是的,输出是 256 位 / 32 字节,所以十六进制摘要不会太长,短 32 个字符(每个字节 2 个十六进制字符)。
-
@kelalaka 首先,你当然是对的。它只会让问题变得更大。它的问题,我不确定它不会让洞变得更大:64*16 是 1024。如果我想解决 2^256 的问题,我只需要 16 个字符。问题是我又有点困惑了,因为我知道 1 hex char 是 4 位。你是对的,4 * 64 是 256。那么......如果不是 2^256,为什么可能的结果数量?我不确定这是问这个问题的地方,但我会试着弄清楚。
标签: hash cryptography sha