Hash 对文件进行散列和去散列

Hash 对文件进行散列和去散列,hash,Hash,我遇到了一个工具WINMD5FREE,它为每个文件生成一个唯一的哈希代码。它接受任何文件类型,并给出33位哈希代码的输出。是否有任何方法可以反转该过程以从该散列代码获取文件 这也是一个合理的怀疑。下载一些流行工具时,除了下载链接外,还有其他Md5、SHA等链接。这些链接代表什么?哈希代码通常是单行道。设计这些散列函数/算法的目的是使其难以逆转这个过程 通常,它们是为了快速生成字符串的“唯一”标识符。给定相同的参数/算法,字符串将始终转换为相同的哈希。即使只更改一个字符,它也可能会转换为不同的字符

我遇到了一个工具WINMD5FREE,它为每个文件生成一个唯一的哈希代码。它接受任何文件类型,并给出33位哈希代码的输出。是否有任何方法可以反转该过程以从该散列代码获取文件


这也是一个合理的怀疑。下载一些流行工具时,除了下载链接外,还有其他Md5、SHA等链接。这些链接代表什么?

哈希代码通常是单行道。设计这些散列函数/算法的目的是使其难以逆转这个过程

通常,它们是为了快速生成字符串的“唯一”标识符。给定相同的参数/算法,字符串将始终转换为相同的哈希。即使只更改一个字符,它也可能会转换为不同的字符,但结果总是一样的

出于恢复目的,ppl生成大型表,即所谓的彩虹表,以反转此过程。您可以使用暴力等方式反转哈希值

除了一条注释:哈希算法总是生成固定长度的哈希。因此,这些散列计算不是双射的。不具有双射性意味着两个字符串有可能映射到同一个哈希。所以,如果你对某些东西进行暴力,可能会出现一些误报


随着进一步添加,暴力强制时间在某种程度上取决于输入中允许的最大字符数。正如评论员所说,几乎不可能反转文件的哈希值。

您似乎误解了哈希代码是什么。它们是不可逆转的

你可以用它们做各种各样的事情。假设您想知道两台计算机上是否有相同的文件,但文件太大而无法通过网络发送,只需计算每台计算机上文件的哈希代码,如果您得到相同的数字,则文件是相同的,如果一个位不同,则会得到不同的哈希代码

散列码也用于密码验证。注册网站时,请输入密码。此字符串经过哈希处理并存储在数据库中。因为散列密码是不可逆的,所以没有人能找到你的密码。当您想再次输入密码登录时,系统会对字符串进行散列,并将其与数据库中存储的内容进行比较。如果哈希字符串匹配,系统可以确信(同样,有一些警告)您键入了正确的密码


阅读有关

的更多信息您是否认真询问是否可以将任何文件压缩到33位,然后仅通过解压缩这33位就可以恢复全部内容?你有没有停下来考虑过这听起来有多不可能?西奥-我在问题中提到了一个工具。如果无法反转进程,那么将其转发到哈希代码又有什么用呢?但该工具只进行哈希运算,而不反转进程。哈希代码的全部要点是它们是不可逆的。你可以用它们做各种各样的事情。假设您想知道两台计算机上是否有相同的文件,但文件太大而无法通过网络发送,只需计算每台计算机上文件的哈希代码,如果您得到相同的数字,则文件是相同的,如果一个位不同,则会得到不同的哈希代码。尝试用谷歌搜索“哈希代码”,或者在进行哈希运算时,无论使用哪种工具,读取的信息总是会丢失。没有任何方法可以可靠地逆转这一过程。任何反转充其量只能是猜测。无法保证“反转”的结果实际上与原始结果相同,或者只是哈希冲突。对于密码,结果至少有一些可能与原始结果相同,但对于完整的文件,这种可能性非常小。我没有说我认为哈希算法显然不是双射的。不是双射意味着有碰撞。但是谢谢你的评论,我把我的答案扩展了一点,使之更完整。第二段的疑问消除了。。。但我在谷歌上找到了很多破解MD5哈希的工具。例如,他们使用反向查找表(我没有提到的警告之一)。基本上,他们已经预先计算了许多字符串的哈希代码@fyr在他的回答中提到了彩虹表,谷歌就是这样。尝试对一张图片或一大块文本进行散列,然后搜索散列代码,你将找不到它。是的,我无法解码文件的散列。可以找到一些字符串的哈希代码,因为它们使用流行的哈希算法。