如何获取文件的 md5 哈希值 | 您所在的位置:网站首页 › 哈希函数怎么用于文件的完整性 › 如何获取文件的 md5 哈希值 |
如何获取文件的 md5 哈希值
Message-Digest算法,俗称md5哈希,是一种加密哈希函数,主要用于验证文件的完整性。 Md5 是对文件运行 MD5 函数后生成的 128 位消息摘要。 Md5 有其缺陷,因此对于某些加密方法来说不是一个很好的选择,但它非常适合文件验证。它的工作原理是创建文件的校验和并将结果与原始结果进行比较。这意味着如果文件发生更改,它就无法生成与原始值相似的摘要值。只要文件保持不变,无论在何处生成或生成多少次,该值都保持不变。 在本指南中,我们将了解生成文件的 md5 哈希值的方法。这将允许您从远程位置或本地计算机上验证文件的完整性。 安装 md5sum在 Linux 和几乎主要的 Unix 和类 Unix 系统中,它们预装了 md5 工具。最常见的是 md5sum。默认情况下,您应该会发现它在您的系统中可用。 $ which md5sum /usr/bin/md5sum如果您没有安装该工具,您可以使用系统的包管理器。 Debian/Ubuntu在 Ubuntu 和其他基于 Debian 的发行版上,使用 apt 作为: sudo apt-get update sudo apt-get install md5sum -yREHL/CentOS在 REHL 和 CentOS 上,使用 yum 作为: sudo yum update sudo yum install md5sumArch/Manjaro如果您使用的是 Manjaro 或其他基于 arch 的发行版,请使用以下命令使用 Pacman: sudo pacman -Sy sudo pacman -S md5sumFedora最后,在 Fedora 系统上,使用 dnf 命令: sudo dnf update sudo dnf install md5sum生成文件的 Md5sum安装该工具后,我们可以继续为文件生成 md5sum。您可以使用系统中可用的任何基本文件。在我的示例中,我使用 Linux 系统中可用的 /etc/hosts。 要生成文件的 md5sum,只需使用 md5sum 命令后跟文件名,您可以在下面的命令中看到: sudo md5sum /etc/hosts上述命令应生成文件的哈希值,如下面的输出所示: f0ea6f62e5a12ed9aee557b23842c6f6 /etc/hosts一旦文件内容发生变化,md5sum值就变得完全不同。例如,向/etc/hosts 文件添加一个值。 sudo nano /etc/hosts将以下条目添加到文件中(随意更改为您认为合适的任何方式)。 192.168.0.20 localhost如果您尝试使用新内容计算文件的 md5 值,如下所示: sudo md5sum /etc/hosts哈希值不同,如下面的输出所示: f4b7f54d5b85a9e73e3c8960c6e9319e /etc/hosts如果将文件恢复为其原始内容,则 md5sum 值与原始值类似,使您可以知道文件何时发生更改。 注意:即使文件被重命名,md5 值也将与原始值相似。这是因为 md5 是根据文件内容而不是文件名计算的。 验证在线文件假设您要验证文件的完整性并确保其防篡改。为此,您需要的只是原始 md5 值。在我的示例中,我使用来自以下资源的简单 MySQL deb 包: https://dev.mysql.com/downloads/mysql/ 使用 wget 下载文件,命令如下: wget https://dev.mysql.com/get/Downloads/MySQL-8.0/libmysqlclient21_8.0.25-1debian10_amd64.deb文件下载后: 现在让我们使用命令验证 md5 值: $ md5sum libmysqlclient21_8.0.25-1debian10_amd64.deb如果文件没有以任何方式修改,您应该获得与原始值类似的值,如下所示: 62ea69f71defbfdac7a60c124f5769c7 libmysqlclient21_8.0.25-1debian10_amd64.deb结论本教程介绍了一种验证文件 md5 校验和并验证其修改状态的简单方法。 这是给您的一个快速练习。 锻炼创建一个简单的 bash 脚本,每 5 分钟检查一次文件 md5 值是否有任何记录的修改。如果文件已更改,请删除该文件并关闭系统。 这应该是一个有趣的练习! |
CopyRight 2018-2019 实验室设备网 版权所有 |