【发布时间】:2018-01-16 07:36:37
【问题描述】:
如果我给你一个字符串的 MD5 校验和,你能生成 SHA 校验和吗? 还是反之亦然?
如果我给你一个 MD5 校验和和一个 SHA 校验和,你能告诉我它们是否是从同一个源字符串生成的吗?
(显然,我排除了从彩虹表中查找源字符串等任何内容)
【问题讨论】:
如果我给你一个字符串的 MD5 校验和,你能生成 SHA 校验和吗? 还是反之亦然?
如果我给你一个 MD5 校验和和一个 SHA 校验和,你能告诉我它们是否是从同一个源字符串生成的吗?
(显然,我排除了从彩虹表中查找源字符串等任何内容)
【问题讨论】:
没有。两者都是单向哈希,因此原始源字符串中包含的信息会在校验和中丢失。
即使您确实有您所说的“原始”字符串,也会有一些其他数据在散列时会导致冲突。这是因为 MD5 和 SHA1 不是完美的哈希函数。在 MD5 的情况下,每个散列可能有无限数量的冲突。那么就无法保证生成的“原始”字符串的 SHA 校验和确实是您所寻求的。
免责声明:我对理论方面的经验很少,因此您可能需要使用其他资源进行验证。
【讨论】: