您的当前位置:首页正文

获得文件MD5——校验完整性 & window 和 Linux下操作

2024-11-11 来源:个人技术集锦

引出


1.Windows 10 自带了一个命令行程序 certutil可以 获取文件的 MD5 值;
2.Linux下md5sum命令获得文件MD5值;

window下获得文件MD5

Windows 10 自带了一个命令行程序 certutil ,它是 Windows 10 证书服务的一部分,可以用来转储和显示证书颁发机构(CA)配置信息、配置证书服务、备份和还原CA组件以及验证证书、密钥对和证书链等,这里主要利用 certutil 获取文件的 MD5 值

where certutil

certutil -hashfile <文件名> MD5

通用的语法为“certutil -hashfile <文件名> <hash类型>”,其中,<hash类型>可填 MD5、SHA1、SHA256等

Linux下获得文件MD5

MD5算法一般用于检查文件完整性,md5sum是校验文件内容,与文件名是否相同无关

linux中每个文件都会有1个md5值。当两个文件的md5值相同,表示这两个文件完全相同。

md5值常用于大型文件的完整性检查,即给予方给出文件的同时给出md5值,接收方收到文件后再次计算md5值,如果两个md5值相同,说明文件在传输过程中没有损坏

单个文件

md5sum BP2315_V1.37_20231107.hex

window和Linux下同一文件计算的MD5是一致的

整个目录下所有文件

find ./myfile/* -type f -print0 |xargs -0 md5sum>md5.txt
  • ./myfile/*表示当前目录下目录myfile的所有文件。注意如果这里写的是绝对路径,最后md5值给出的文件名也是绝对路径。如果这里写的是相对路径,md5值对应的文件名也是相对路径。为了方便接收人检查md5值,建议写成相对路径。
  • -type f 表示计算前方目录下类型为“文件f”的所有文件。如果你要计算的文件是软链接,要写成"l"。具体符号与文件类型的对应关系请查看find的说明。

检查MD5

md5sum -c md5.txt > md5.check
  • 接收人拿到文件后,执行这个命令检查每个文件的md5值是否与文件md5.txt中记录的一致。
  • 极力建议md5.txt中使用相对路径!!!如果路径不对md5值无法匹配检查。
  • 结果保存在文件md5.check中。对每个文件会给出中文的“正确”,“错误”标识。

参考文章:https://zhuanlan.zhihu.com/p/364751785

总结


1.Windows 10 自带了一个命令行程序 certutil可以 获取文件的 MD5 值;
2.Linux下md5sum命令获得文件MD5值;

Top