我无法找到如何解码sha1中编码的字符串。我很惊讶我在python docs中找不到简单的功能或google做sha1解码。我放弃。我需要帮助..
答案 0 :(得分:17)
SHA1是一种散列算法。散列是单向的,这意味着无法从输出中恢复任何非平凡散列函数的输入。单向散列函数的一个简单示例是将数字的所有数字加在一起。 1234
会哈希到1 + 2 + 3 + 4 = 10
,但4321
,1900
,5050
以及许多其他数字也会哈希。仅给出10
的哈希值,您无法判断输入是1234
还是5050
,因为信息已丢失。
这是一个图形示例:
如您所见,John Smith
和Sandra Dee
都映射到02
。这意味着您无法仅仅02
恢复对哪个名称进行哈希处理。
哈希很有用,因为它将任何数据量映射到固定大小的输出,并且与上面的示例不同,极很难找到两个输入哈希到相同的输出。对于具有相同哈希值的SHA-1的find just a single pair输入,花费了超过6,500个CPU年。
因此,如果hash(A) == hash(B)
,那么您可以确信A == B
。如果您复制一个巨大的文件并且原始文件和副本的哈希值相同,那么您可以非常确定文件是否完整。