MD5算法常常被用来验证网络文件传输的完整性,防止被人篡改。
MD5全文是报文摘要算法(message-digest algorithm 5),此算法对任意长度的信息逐步进行计算,产生一个二进制长度为128位(十六进制长度为32位)的指纹(或者称为“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常小的。
在Linux上,md5sum 是用来计算和校验文件报摘要的工具程序。一般来说,安装了linux后,就会有这个md5sum工具,直接在终端运行。
1、使用md5sum来产生指纹(报文摘要)命令如下:
md5sum file > file.md5
或者
md5sum file >>file.md5
也可以把多个文件的报文摘要输出到一个md5文件中,这要使用通配符*,比如某目录下有几个img文件,要把这几个img文件的摘要输出到img.md5文件中,命令如下:
md5sum *.img > img.md5
查看img.md5文件如下:
1742b795e5266ed8ccd39e86433f5015 ramdisk.img
cf1146166bcfeda738d34252f217820a recovery.img
470332d040285dd2cd7ebbc941ae309d system.img
5ead31ec15b65e258dd1af0b6ac1fe95 userdata.img
2、使用md5报文摘要验证文件,方法有二:
把下载的文件file和该文件的file.md5报文摘要文件放在同一个目录下,然后用如下命令进行验证:
md5sum -c file.md5
然后如果验证成功,则会输出:正确
下面是修改文件后显示的信息:会检验处被修改的文件不完整性
ivy@ivy-OptiPlex-380:/imx51_bbg$ md5sum -c Img.md5
android-info.txt: 失败
clean_steps.mk: 确定
img.md5: 确定
installed-files.txt: 确定
previous_build_config.mk: 确定
ramdisk.img: 确定
recovery.img: 确定
md5sum: system.img: 没有那个文件或目录
system.img:打开或读取失败
userdata.img: 确定
md5sum: 警告:1/9 列出的文件无法读取
md5sum: 警告:1/8 生成的校验和不匹配