2.7校验和与核实

校验和(checksum)程序用来从文件中生成检验和秘钥,然后利用这个校验和秘钥核实文件的完整性。

用于文件完整性测试的特定秘钥就称为校验和。

校验和对于编写备份脚本或系统维护脚本来说非常重要。
1、最知名且使用最为广泛的校验和技术是md5sum和SHA-1。他们对文件内容使用相应的算法来生成校验和。

2、为了计算md5sum,使用下面命令:

$md5sum filename

68b329da9893e34099c7d8ad5cb9c940 filename

如上所示,md5sum是一个32个字符的十六进制。

将输出的校验和重定向到一个文件,然后用这个MD5文件核实数据的完整性。

$md5sum filename >file_sum.md5

3、工作原理

md5sum校验和计算的方法如下:

$md5sum file1 file2 file3 ..

当使用多个文件时,输出中会在每行中包含单个文件的校验和:

[checknum1]  file1

[checknum1]  file2

[checknum1]  file3

用下面的方法用生成的文件核实数据完整性:

$md5sum -c file_sum.md5

#这个命令会输入校验和是否匹配的消息

如果需要用所有的.md5信息来检查所有的文件,可以使用

$md5sum -c *.md5

与md5sum类似,SHA-1是另一种常用的校验和算法,它对应的命令和文件是sha1sum和file_sum.sha1

4、补充内容

核实多个文件

对目录进行校验

校验和是从文件中计算得来的,对目录计算校验和意味着我们需要对目录中的所有文件进行递归的方式进行计算。

可以用命令md5deep或sha1deep来实现。首先需要安装md5deep软件包以确保能找到这些命令。如下

$md5deep -r1 directory_path > directory.md5

#-r使用递归的方式

#-1使用相对路径。默认情况下,md5deep会输出文件的绝对路径.

也可以结合find来递归计算校验和

$find directory_path -type f -print0 |xargs -0 md5sum >>directory.md5

用下面的命令进行核实

$md5sum -c directory.md5

时间: 2024-11-13 09:25:51

2.7校验和与核实的相关文章

SHELL笔记(二)

1录制并回放终端会话 1.1录制终端 $ script -t 2> timing.log -a output.session commands; ...... ....... exit //文件timing.log用于保存时序信息:文件output.session用于存储命令输出. 1.2回放终端 $ scriptreplay timing.log output.session 2.文件查找和文件列表 2.1列出当前目录及子目录下所有的文件和文件夹 eg: find /home/mapgoo/s

Shell脚本基础介绍

shell基础简介: 编写脚本通常使用某种基于解释器的编程语言.而shell脚本不过就是一些文件,我们能将一系列需要执行的命令写入其中,然后通过shell来执行这些脚本. 进入Linux系统(Ubuntu),打开终端Terminal,"$"表示普通用户,"#"表示超级用户.其实此时打开的即为shell终端.注意:Redhat/CentOS系统默认安装的shell是bash,它是sh的增强版,Ubuntu默认安装的shell是dash.通过执行:$ ll  /bin/

shell学习四十八天----文件校验和匹配

文件校验和匹配 要是你怀疑可能有非常多文件具有同样的内文,而是用cmp或diff进行比較全部横队的比較,导致所花费的时间会随着文件数目增长成次方的增长. 这是能够使用file checksum(文件校验和),取得近似线性的性能.有非常多工具可用来计算文件与字符串的校验和,包含sum,cksum,以及checksum,消息摘要工具md5与md5sum,安全性散列算法工具sha,shalsum,sha256,以及sha384. 案例: $echo -n "hello" | md5sum |

ZYNQ 7000平台UDP数据包(1字节或2字节)校验和Checksum错误0xFFFF解决方案(linux+vxworks6.9平台)

在赛灵思ZYNQ 7000平台,使用UDP方式发送1字节或者2字节数据时,校验和为错误值0xffff,接收机无法正常接收ZYNQ7000平台发送的数据,本人已经找到该问题的解决方案,有该问题的朋友可以通过邮箱[email protected]与我联系,联系时请详细描述你的环境,针对该咨询提供的问题解决方案会收取一定的费用,费用不会太高,现在是知识付费的年代,希望各位理解,同时如果能够解决您的问题,也是为你节约了开支.我会及时回复邮件的.具体事项可以邮件沟通[email protected].

计算数IP据报的校验和

IP/ICMP/IGMP/TCP/UDP等协议的校验和算法都是相同的,算法如下: 在发送数据时,为了计算数IP据报的校验和.应该按如下步骤: (1)把IP数据报的首部都置为0,包括校验和字段. (2)把首部看成以16位为单位的数字组成,依次进行二进制反码求和. (3)把得到的结果存入校验和字段中. 在接收数据时,计算数据报的校验和相对简单,按如下步骤: (1)当接收IP包时,需要对报头进行确认,检查IP头是否有误,算法同上2.3步,然后判断取反的结果是否为0,是则正确,否则有错. 1.发送方 i

ipv4校验和计算

ipv4校验和的计算 原理: 计算方法一:除去校验和的两位,将其他的位相加:45+00+00+3c+55+81+00+00+40+01+ac+1c 0f+0d+ac+1c+0f+0e= 计算方法二: 校验和(checksum)算法,简单的说就是16位累加的反码运算: 计算函数如下: 我们在计算时是主机字节序,计算的结果封装成IP包时是网络字节序,注意这两者之间的区别,我们在从IP包里读取要转化为主机字节序,往IP包里存入时要转化为网络字节序在存入. UINT32 Checksum(UINT32

RPM包校验和提取

一.RPM包校验 [[email protected] Packages]# rpm -V 已安装的包名 #选项: #????-V????校验指定RPM包中的文件(verify) [[email protected] Packages]# vim /etc/httpd/conf/httpd.conf????????---> 对包的配置文件进行修改 [[email protected] Packages]# rpm -V httpd????????????????????---> 对修改后的包再

如何通过手机号码核实真实姓名

问题起因: 前段时间,朋友被骗钱了,骗子只给朋友一个手机号码.(至于具体为啥这么傻,这个在此不议)后来朋友找到我,希望我能找到这个号码的真正主人.在此先郑重声明:此贴内容仅本人为找人而作,非有意引向大家走这条路,毕竟机主信息属于个人隐私,擅自查询可能触犯法律. 上网百度谷歌了一下,基本上都是说找营业厅的,现将网上的方法归类如下: 一.直接去营业厅.当成是充话费的,直接将手机号码报给客服人员,当他们输入号码后会和你核实姓名,当她报出名字后你就说“对不起,现在又不充了”,转身华丽丽的离场. 二.打相

具有自动地计算校验和和格式化条形码的能力的条形码控件MSI Plessey

MSI Plessey条形码控件是在20世纪70年代由英国Plessey Company所设计的,主要使用在图书馆和零售应用中.MSI Code字符集的符号集是由数字0-9表示的条形码符号,开始符和结束符组成.在MSI字体中,使用圆括号来表示开始和结束字符.若不用IDAutomation字体工具将MSI字体作为一个条形码打印的话可能会比较困难,因为要求校验和数字计算.如果要首选一种简单易用的条形码字体并且不要求MSI Code,那么请考虑IDAutomation的Codabar Font,它不需