MD5校验(checksum)是通过对接收的传输数据执行散列运算来检查数据的正确性。
简介
一个散列函数,比如 MD5,是一个将任意长度的数据字符串转化成短的固定长度的值的单向操作。任意两个字符串不应有相同的散列值(即,有“很大可能”是不一样的,并且要人为地创造出来两个散列值相同的字符串应该是困难的)。
一个 MD5 校验和(checksum)通过对接收的传输数据执行散列运算来检查数据的正确性。计算出的散列值拿来和随数据传输的散列值比较。如果两个值相同,说明传输的数据完整无误、没有被窜改过(前提是散列值没有被窜改),从而可以放心使用。
MD5校验可以应用在多个领域,比如说机密资料的检验,下载文件的检验,明文密码的加密等。
MD5校验原理举例
如客户往我们数据中心同步一个文件,该文件使用MD5校验,那么客户在发送文件的同时会再发一个存有校验码的文件,我们拿到该文件后做MD5运算,得到的计算结果与客户发送的校验码相比较,如果一致则认为客户发送的文件没有出错,否则认为文件出错需要重新发送。
md5sum命令
md5sum命令用于生成和校验文件的md5值。它会逐位对文件的内容进行校验。是文件的内容,与文件名无关,也就是文件内容相同,其md5值相同。
md5值是一个128位的二进制数据,转换成16进制则是32(128/4)位的进制值。
语法格式
md5sum [参数] [文件]
-b | 以二进制模式读取文件 |
-t | 以文本模式读入文件内容 |
-c | 根据已生成的md5值,对现存文件进行校验 |
-w | 检查输入的md5信息有没有非法行,若有则输出相应信息 |
--status | 校验完成后,不生成错误或正确的提示信息,可以通过命令的返回值来判断 |
参考实例
生成文件md5值:
[root@localhost ~]# md5sum file
文件内容校验:
[root@localhost ~]# md5sum -c d.md5