获得文件MD5——校验完整性 window 和 Linux下操作
目录
- 引出
- window下获得文件MD5
- Linux下获得文件MD5
- 单个文件
- 整个目录下所有文件
- 检查MD5
- 总结
引出
1.Windows 10 自带了一个命令行程序 certutil可以 获取文件的 MD5 值;
2.Linux下md5sum命令获得文件MD5值;
window下获得文件MD5
Windows 10 自带了一个命令行程序 certutil ,它是 Windows 10 证书服务的一部分,可以用来转储和显示证书颁发机构(CA)配置信息、配置证书服务、备份和还原CA组件以及验证证书、密钥对和证书链等,这里主要利用 certutil 获取文件的 MD5 值
查看自带的certutil工具
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值;