用md5算法检测文件的完整性
来源:互联网 发布:网络机顶盒看莆田卫视 编辑:程序博客网 时间:2024/06/05 11:14
MD5算法常常被用来验证网络文件传输的完整性,防止文件被人篡改。
MD5全称是报文摘要算法(Message-Digest Algorithm5)
此算法对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”),不同的文件产生相同的报文摘要的可能性是非常非常之小的。
在linux或Unix上,md5sum是用来计算和校验文件报文摘要的工具程序。一般来说,安装了Linux后,就会有md5sum这个工具,直接在命令行终端直接运行。
1.使用md5sum来产生指纹(报文摘要)命令如下:
md5sum file > file.md5 //覆盖
或者
md5sum file >>file.md5 //添加
也可以把多个文件的报文摘要输出到一个md5文件中,这要使用通配符*,比如某目录下有几个txt文件,要把这几个文件的摘要输出到test.md5文件中,命令如下:
md5sum *.txt> test.md5
2.使用md5报文摘要验证文件:
把下载的文件file和该文件的file.md5报文摘要文件放在同一个目录下,然后用如下命令进行验证:
md5sum -c file.md5
然后如果验证成功,则会输出:
filename: OK (注意格式)
3.查看一个字符串的md5值
echo "123" | md5sum
4.对文件夹里文件整体操作
比如要对mm文件夹
[wang@localhost 桌面]$ find ./mm -type f -name "*" -exec md5sum {} \;
fe185931e17b40cd2c1716e2aa77a1f1 ./mm/test.sh
2180296c4f3271dc52ca661e75a4c21e ./mm/00.txt
d41d8cd98f00b204e9800998ecf8427e ./mm/00.txt~
注意:{}后空一格接\ 再加上一个分号
fe185931e17b40cd2c1716e2aa77a1f1 ./mm/test.sh
2180296c4f3271dc52ca661e75a4c21e ./mm/00.txt
d41d8cd98f00b204e9800998ecf8427e ./mm/00.txt~
注意:{}后空一格接\ 再加上一个分号
find ./mm -type f -name "*" -exec md5sum {} \;| sort
这条命令可以用来查看重复文件 并排序
这条命令可以用来查看重复文件 并排序
用例:
查看挂载的文件完整性,比如U盘。
sprintf(cmd,"cd %s; md5sum -c check.md5 | grep \"%s: OK\"",mount_file,find_name);
ret = system(cmd);
注意:
1.分号后面马上接命令,因为在挂载中运行完命令后操作点会回到最初的地方。
2.grep命令中后面要查找的文件用双引号,引号中有引号,使用转义字符“\”。
3.md5sum检测文件的输出格式是filename: OK(文件名后冒号,空一格后接OK)。
- 用md5算法检测文件的完整性
- 基于md5的文件完整性检测
- md5算法 保证下载文件的完整性
- 使用文件Md5值检测文件完整性
- 用MD5验证上传文件的完整性
- java中使用MD5验证文件的完整性
- 检测图片的完整性
- 『ZIP』检测zip文件的完整性
- 如何检测Linux系统已下载文件的完整性
- 快速MD5碰撞生成器,MD5真的不可靠了.MD5用来去重和校验文件完整性已经不可靠了
- python检测文件的MD5值
- python检测文件的MD5值
- windows 平台下生成 hash 值的几款软件,支持的算法有 md5 、sha1 等,可以校验下载文件的完整性
- 求文件的MD5算法
- Linux系统中校验下载文件的完整性方法(MD5,SHA1,PGP)
- Linux系统中校验下载文件的完整性方法(MD5,SHA1,PGP)
- Linux系统中校验下载文件的完整性方法(MD5,SHA1,PGP)
- Linux系统中校验下载文件的完整性方法(MD5,SHA1,PGP)
- 不同窗口间的传值
- Intent的Action实现应用程序之间的切换
- android系统如何获取手机信息
- ios 开发中 动态库 与静态库的区别
- Hadoop架设过程中实现普通用户权限下SSH无密码登录
- 用md5算法检测文件的完整性
- Windows Socket五种I/O模型——代码全攻略
- ant与selenium联合测试
- awk合并行、linux shell 字符串操作、sed字符替换
- PTA是什么?BT-WIFI共存
- 浅谈移动电子商务在民航业的应用优势
- c/c++ 柔性数组 -- 结构体变长的妙用——0个元素的数组 (转载)
- ubuntu下编译Android出现的问题 总结
- tcp三次握手协议