是否可以从SHA-1加密邮件中检索原始邮件?如果我有一个SHA -1加密消息,我需要什么样的参数来从中获取原始消息?
答案 0 :(得分:6)
我已经回答了类似的问题:Python SHA1 DECODE function
简而言之,不可能。散列的重点是取一些长串并将其转换成小串。散列是破坏性的,你丢失数据,所以它是不可逆转的。
另外,为了让事情变得更有趣,无限多的字符串具有相同的散列 1 。除非您了解有关输入的更多信息,否则无法生成具有给定哈希的唯一字符串。
1:有大量的哈希函数和一些可能具有“特殊”哈希值,这些哈希值仅在您向函数提供特定输入时生成。除了那些罕见的情况(如果它们甚至存在),每个其他输出散列都有无限多的输入字符串。
答案 1 :(得分:2)
http://en.wikipedia.org/wiki/Cryptographic_hash_function
it is infeasible to generate a message that has a given hash
答案 2 :(得分:1)
哈希不是加密。加密就像在拼图拼图一样。哈希更像是将这些碎片放在搅拌机中,之后没有合理的方法来恢复原始图片。
答案 3 :(得分:1)
SHA-1
哈希从任意大小的输入生成160位输出。由于存在比2^160
可能输出更多的可能输入,因此必然存在冲突,即。不同的输入具有相同的输出。
这意味着有可能(通过暴力或利用算法中的弱点 - 我认为目前都不知道)找到对应于给定散列的消息,但它可能不是原始的消息。
即使您修改了输入的大小,如果它大于160位,也会发生冲突,并且无法反转哈希函数。
答案 4 :(得分:0)
如果你知道原始消息的长度(512位的倍数),你只需要测试那个大小的2 ^ 512个输入。对每个操作应用SHA1操作,并比较结果。这假设没有腌制,而且相当重要的计算资源。