Linux md5sum 命令超全详解|文件校验 / 防篡改 / 批量验证一站式掌握

📅 发布时间:2026/7/10 1:09:53 👁️ 浏览次数:
Linux md5sum 命令超全详解|文件校验 / 防篡改 / 批量验证一站式掌握
1. 命令简介md5sum 是一个基于 MD5Message-Digest Algorithm 5报文摘要算法的文件完整性校验工具。它会对输入的数据计算出一个长度为 128 位32 个十六进制字符的哈希值通常称为 “校验和” 或 “指纹”。主要用途验证文件在传输或存储过程中是否被篡改比较两个文件是否完全相同生成可用于密码或标识的随机字符串结合其他命令批量校验多个文件的完整性注意 MD5 算法已被证明存在碰撞漏洞不同数据可能产生相同哈希值不适用于高安全性场景如数字签名、证书验证。对于安全性要求较高的场景建议使用 sha256sum 等更安全的算法。2. 语法格式bash运行md5sum [选项]... [文件]...基本格式说明当不指定 文件 时md5sum 会从标准输入读取数据。可以同时指定多个文件进行批量处理。输出格式为MD5 校验和 文件名当从标准输入读取时文件名为 -3. 常用选项及说明表格选项参数说明-b无以二进制模式读取文件Windows 换行符不会影响校验结果-t无以文本模式读取文件默认模式-c文件从指定文件中读取 MD5 校验和并进行验证--status无验证时不输出任何信息只通过退出状态码返回结果-w无当校验失败或格式错误时显示警告信息--help无显示帮助信息--version无显示版本信息退出状态码0成功所有文件验证通过1失败至少一个文件验证失败或格式错误2命令行参数错误或文件无法访问4. 示例用法示例 1计算单个文件的 MD5 值计算文件内容并显示校验和bash运行md5sum document.pdf输出示例plaintextd41d8cd98f00b204e9800998ecf8427e document.pdf示例 2计算多个文件的 MD5 值同时计算多个文件bash运行md5sum file1.txt file2.jpg file3.zip输出示例plaintext5d41402abc4b2a76b9719d911017c592 file1.txt 7d793037a0760186574b0282f2f435e7 file2.jpg 25f9e794323b453885f5181f1b624d0b file3.zip示例 3生成 MD5 校验文件将文件的 MD5 校验和保存到文件bash运行md5sum important.dat important.dat.md5查看生成的 MD5 文件内容bash运行cat important.dat.md5 # 输出c4ca4238a0b923820dcc509a6f75849b important.dat示例 4验证文件完整性使用之前生成的 MD5 文件进行验证bash运行md5sum -c important.dat.md5验证成功输出plaintextimportant.dat: OK验证失败输出plaintextimportant.dat: FAILED md5sum: WARNING: 1 computed checksum did NOT match示例 5静默验证仅通过状态码判断不显示任何输出只通过返回值判断bash运行md5sum --status -c important.dat.md5 echo $? # 返回 0 表示验证成功非 0 表示失败示例 6从标准输入计算 MD5计算字符串的 MD5bash运行echo -n hello | md5sum # 输出5d41402abc4b2a76b9719d911017c592 -结合 date 命令生成随机字符串bash运行date | md5sum # 输出6a43f2c246cdc3e6a3592652f831d186 -示例 7批量验证多个文件首先为多个文件生成 MD5 校验文件bash运行md5sum *.iso checksums.md5然后批量验证所有文件bash运行md5sum -c checksums.md5成功输出示例plaintextubuntu-22.04.iso: OK debian-11.iso: OK fedora-36.iso: OK示例 8处理格式错误的 MD5 文件当 MD5 文件格式错误时显示警告bash运行md5sum -w -c broken.md5输出示例plaintextmd5sum: broken.md5: 1: improperly formatted MD5 checksum line md5sum: broken.md5: no properly formatted MD5 checksum lines found5. 注意事项5.1 安全性考虑MD5 已不安全MD5 算法存在已知的碰撞攻击漏洞攻击者可以构造两个不同内容但具有相同 MD5 值的文件。适用场景仅推荐用于非安全关键的场景如验证非恶意环境下的文件传输完整性快速比较文件是否相同检测非故意的文件损坏安全替代方案对于需要安全验证的场景请使用bash运行sha256sum # SHA-256 算法 sha512sum # SHA-512 算法 b2sum # BLAKE2 算法5.2 文件格式注意事项MD5 文件格式校验文件每行应包含 MD5 校验和 [两个空格或一个空格一个星号] 文件名空格表示文本模式计算星号表示二进制模式计算 示例d41d8cd98f00b204e9800998ecf8427e file.txt换行符问题WindowsCRLF和 LinuxLF换行符会影响文本文件的 MD5 值使用 -b 选项可以避免这个问题跨平台传输文本文件时需注意一致性。