是否可以从SHA-1加密消息中检索原始消息?

时间:2012-06-11 04:54:46

标签: algorithm cryptography sha1

是否可以从SHA-1加密邮件中检索原始邮件?如果我有一个SHA -1加密消息,我需要什么样的参数来从中获取原始消息?

5 个答案:

答案 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操作,并比较结果。这假设没有腌制,而且相当重要的计算资源。