有时候我们在网上下载文件的时候,会碰到这样一种情况,网站不仅给出了文件的大小,还给出了一个MD5码,这个MD5码是什么东西。
首先笔者先告诉大家MD5是一种加密算法,而MD5码的作用则是校验文件是否发生了改变,下面我为大家演示一下MD5码到底怎么使用。
首先演示一下如何在windows上使用MD5码,打开powershell,输入
Get-FileHash .\11.txt -Algorithm md5
按回车,此时powershell会给出11.txt的MD5值,Algorithm表示的是加密算法种类,此文件的MD5值为
D41D8CD98F00B204E9800998ECF8427E 。
然后对文件进行修改,为文件添加一些内容,再次执行
Get-FileHash .\11.txt -Algorithm md5
命令,此时得到的结果如下图,文件的MD5值为
D70D38610F1FC539A9FD437C6CC12F5E ,
可以看出,文件发生改变,MD5也会发生变化,图片中
1234>>11.txt
的意思是在11.txt的底部追加写入1234。
在windows上校验MD5的方式比较繁琐,在linux上会更加简单,首先打开虚拟机上的Center OS7并用Xshell进行远程连接,新建一个文件11.txt,用md5sum给出11.txt的MD5值,结果如下图所示。touch 11.txt的意思是创建一个名称为11.txt的文件,md5sum 后接路径可以得到文件的MD5值。
然后在11.txt最后追加1234,再次测试文件的MD5值,此时文件的md5值变为e7df7cd2ca07f4f1ab415d457a6e1c13。
linux还给出了校验文件MD5值得更简单方式,将文件的MD5值写入到另一个文件中,相当于一个密码本,当文件不发生改变时,使用md5sum -c 密码本会输出ok,而一旦文件发生了改变,则会输出FAILED,这种方式有利于文件的批量校验。
MD5除了给文件做校验外,还可以用来对数据进行加密,至于对数据进行加密,笔者会在另外一篇文章进行解释。