【发布时间】:2022-02-21 00:24:47
【问题描述】:
SHA-256 散列函数始终输出 32 字节散列。如何使用 32 字节种子和 SHA-256 哈希函数创建 64 字节哈希输出?
我听说他们使用这样的技术(伪代码):
init_hash = SHA256 (seed)
next_hash = SHA256 (init_hash + 1)
next_hash_vol2 = SHA256 (next_hash + 2)
next_hash_vol3 = SHA256 (next_hash_vol2 + 3)
...
next_hash_volA = SHA256 (next_hash_vol9 + A)
...
next_hash_vol10 = SHA256 (next_hash_volF + 10)
...
...
next_hash_vol64 = SHA256 (next_hash_vol63 + 40)
这听起来真不错!但问题是 SHA-256 总是生成 32 字节的输出,但我需要 64 字节:(
【问题讨论】:
-
只需调用 SHA256 函数两次,对两次调用之间的种子进行一些小的更改,例如递增它。
-
@DavidSchwartz 你的意思是 next_hash = SHA256 (种子)。然后 next_hash + (concatenate) + SHA256 (next_hash + 1) ?
标签: random hash cryptography sha256 sha2