我知道这是一个真正愚蠢的问题,我当然在说完全垃圾,但让我解释一下:
- 我们有一个很长的 SHA-256 哈希,例如:
474bfe428885057c38088d585c5b019c74cfce74bbacd94a7b4ffbd96ace0675(256bit) - 现在我们使用长散列创建一个 SHA-1 和一个 MD5 散列并将它们组合起来。例如:
c49e2143913627ea178e66571189628a41526bf3(SHA-1; 160bit ) +6bb225025371aaa811748da8e011773d(MD5; 128bit )
所以现在我们得到了:
c49e2143913627ea178e66571189628a41526bf36bb225025371aaa811748da8e011773d
(SHA-1 + MD5; 160bit + 128bit = 288bit)
它比输入字符串长,用288bit而不是256bit。那么我们真的增加了熵吗?
简而言之,就是这样:
hash = sha256(input) # 256bit
result = sha1(hash) + md5(hash) # 288bit
(那应该是伪代码,不知道是否通过。)
这里推理的错误是什么?我相信你不能以这种方式增加熵/字符串长度......
编辑:也很重要:我什至可能降低熵还是保持不变?