Linux命令:md5sum创建MD5哈希值,比较两个文件是否相同

Lasted 2020-01-04 11:29:50

md5sum用于计算与校验RFC 1321所描述的128位MD5哈希值,可以作为文件的数字指纹使用。

因为MD5算法安全性已遭质疑,如果安全性要求很高,应使用sha256sum哈希值工具。

语法格式

md5sum [OPTION] [FILE]

常用选项

  • -b 二进制模式读取文件。
  • -t 把输入的文件作为文本文件。
  • -reload 从指定文件中读取MD5,并进行校验。
  • --status 验证成功时不输出任何信息。
  • -w 校验不正确时给出警告信息。

常用命令

创建MD5文件

1. 创建docsxyzA.txtdocsxyzB.txt的哈希文件hash.md5

md5sum docsxyzA.txt docsxyzB.txt > hash.md5 cat hash.md5
002fd687f16b84fe8a65075bdbf0c994  docsxyzA.txt
dd88a18984f2a77631c99eaf4652921a  docsxyzB.txt

  检测MD5值

2. 检测hash.md5文件中对应的文件哈希值是否发生变化

md5sum -c hash.md5
docsxyzA.txt: OK
docsxyzB.txt: OK

#如果docsxyzA.txt发生变化
docsxyzA.txt: FAILED
docsxyzB.txt: OK
md5sum: WARNING: 1 computed checksum did NOT match

只显示MD5变化的文件

3. 如果有很多文件需要检测,怎样只显示MD5有变化的文件呢,需要添加 --quiet 参数。 

md5sum -c --quiet hash.md5
docsxyzA.txt: FAILED
md5sum: WARNING: 1 computed checksum did NOT match

检测单个文件

echo 'D43F2404CA13E22594E5C8B04D3BBB81 filetohashA.txt' | md5sum -c
filetohashA.txt: OK