MD5 是一种加密散列函数,它具有许多优点,例如生成它们的速度和几乎不可逆的算法。这些都导致了MD5算法在过去被广泛使用,但是这个功能现在哪里还在使用呢?
MD5 算法最常见的应用现在是在传输后检查文件的完整性。通过在文件传输前后生成 MD5 文件,可以识别任何损坏。MD5 还用于在某些数据库中存储密码,即使它不再安全。
关于MD5算法的提醒
MD5 代表“消息摘要算法 5”。
它是一个哈希函数,可以将任何输入(数字、字符串或任何长度的文件)转换为包含 32 个十六进制字符的输出。
例如,字符串“MD5Online”对应的MD5哈希为“d49019c7a78cdaac54250ac56d0eda8a”。
结果中没有逻辑,如果你只有 MD5 哈希值,祝你好运找到原始值。
与其他解决方案相比,该算法的主要优势是对任何操作系统的本机支持以及生成 MD5 哈希的速度。它不会减慢任何进程,因此即使在大型数据集上使用它也是完美的。
使用 MD5 作为完整性检查器
MD5 算法现在主要用于在传输后检查文件的完整性。特别是对于大文件,您经常会在下载页面上找到一个 MD5 文件,让您可以检查下载是否完整和有效。
一般来说,一个 MD5 文件只包含一个 MD5 哈希值。这个哈希是一个更大文件的指纹,由 md5sum 程序生成。您可能知道,MD5 算法并不完美,但对于特定输入,它总是给出相同的结果。如果输入不变,输出将始终是相同的哈希值。
有许多工具可用于生成 MD5 文件。无论您使用什么操作系统,您都应该能够快速找到解决方案,无论是通过本机方式(通常在命令行中)还是通过安装图形工具来执行相同的操作,无需任何技能。
托管文件的人(假设是一个大的 ISO 文件)将共享该文件和相应的 MD5 文件。下载ISO文件后,您可以在计算机上生成一个MD5文件,并将结果与主机提供的结果进行比较。
使用 MD5 在数据库中存储密码
MD5 算法过去曾流行用于对数据库中的密码进行加密。目标是避免将它们保留在明文中。这样他们就不会在安全漏洞或黑客攻击的情况下暴露出来。从那以后,不再推荐为此使用 MD5 算法。
即使MD5 函数在字面意义上是不可逆的,但每年打破它们并找到原始值变得越来越容易。随着多年来技术的改进,现在破解任何短密码都非常快。
蛮力、字典和彩虹表是对抗 MD5 哈希的策略。当前的计算机可以使用强大的 GPU 资源在任何由短密码或常用词生成的 MD5 哈希上获得高成功率。这就是为什么第二次使用越来越少的原因,即使它仍在某些代码中使用,因为切换到另一种算法并不容易。