Linux 和 Windows 获取文件 MD5 值
Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。
有的时候需要查看一下文件没有没有被篡改的时候,就会需要验证一下md5,但是一直以来在 Windows 上安装一些软件来实现,因为下载的东西除了官网下的(虽然也不是100%安全,比如你用的铁通,你的文件极大可能从铁通自己的缓存服务器上下的),其他途径下的更不靠谱。
原来自己写了个C#版的,但是需要framework,而且写的也比较傻。php等语言的生成也需要配置相应的语言环境。今天想用了,但是手头没有这些工具,所以就想看看 Windows 有没有自带的工具,经过搜索发现 certutil 这个工具可以生成。
有这个就简单了,通过命令行就可以生成,不过经常用用的话,还是通过 bat 批处理文件来一劳永逸。
@echo off
certutil -hashfile %~1 MD5
pause
复制以上代码另存为 .bat 文件。懒得另存的话点这里下载(单文件/多文件)
将想要获取 md5 值的文件拖放到 bat 文件的图标上(不需要把bat打开),这样 %~1 就获取拖放文件的 MD5 值。SO EASY!
除了获取 md5 ,还可以生成 SHA1、SHA256 等等,将上边的 md5 改成相应的名称生成的就行。
其实 certutil 从名字来看是用于管理证书的,这里我们只是用到这个工具的一小部分。其他的用法这里不提。
如果需要一次性生成多个文件的MD5需要修改加一个循环。
@echo off
setlocal enabledelayedexpansion
for %%a in (!%*!) do (
certutil -hashfile %%a MD5
certutil -hashfile %%a MD5 >> MD5.txt
)
pause
以上论述的功能基于你只需要查看 md5 的话完全够用,如需要特别复杂的操作可能还是需要下载相应的软件来实现。这里也不提。
下边是 Linux 获取 MD5 值的操作。
Linux 获取 md5 值很容易,一般安装了 Linux 后,都会有 md5sum 这个工具,可以直接在命令行终端直接运行。
比如输出MD5值
可以 md5sum file 直接输出
或者 md5sum file > file.md5 覆盖生成md5值的文件
或者 md5sum file >> file.md5 将值附加到文件末尾
或者 md5sum . 支持通配符
比对MD5值
把下载的文件和该文件同名的 .md5 报文摘要文件放在同一个目录下,然后用如下命令进行验证:
md5sum -c file.md5
这样就会自动除了 md5 后缀之外一样的文件名,然后如果验证成功,则会输出:OK,否则输出FAILED,譬如提示 md5sum: WARNING: 1 computed checksum did NOT match。
更多的 md5sum 用法这里不提。linux当然有 sha1sum、sha256sum、sha512sum 等工具了,使用跟md5类似。