md5deep是一套跨平台的方案,计算和比较MD5等哈希加密信息的摘要(MD5, SHA-1, SHA-256, Tiger,Whirlpool)。
主要的功能:
可以递归检查整个目录树
可以接受已知的哈希值,并把它们比作一组输入文件的列表。
     当处理非常大的文件时就会产生的时间估计!
 散列输入文件中的任意大小的块
 可以处理只有某种类型的文件

项目(release-4.0.0)目录如图:

安装方式(以Ubuntu 6.10 Edgy为例):
$ sudo apt-get install md5deep
计算aaa目录下所有档案的MD5并存成aaa.md5:
$ md5deep -l -r aaa > aaa.md5
同上, 但是以binary方式计算:
$ md5deep -k -l -r aaa > aaa.md5
比对 *.iso 挡的MD5是否跟 xxx.md5 里的MD5是否一样, 并列出比对无误的档案:
$ md5deep -m xxx.md5 *.iso
同上, 但列出比对时发现错误的档案:
$ md5deep -x xxx.md5 *.iso
同上, 但列出比对时发现错误的档案时也一并列出该档的MD5:
$ md5deep -X xxx.md5 *.iso
同上, 但比对过程中显示进度:
$ md5deep -e -X xxx.md5 *.iso
其他参数可下 md5deep -h或info md5deep查看说明.

main代码:

int main( int argc, char *argv[] )
{FILE *f;int i, j;char output[65];context_sha256_t ctx;unsigned char buf[1000];unsigned char sha256sum[32];if( argc < 2 ){printf( "\n SHA-256 Validation Tests:\n\n" );for( i = 0; i < 3; i++ ){printf( " Test %d ", i + 1 );//sha256_starts( &ctx );if( i < 2 ){sha256_update( &ctx, (uint8_t *) msg[i],strlen( msg[i] ) );}else{memset( buf, 'a', 1000 );for( j = 0; j < 1000; j++ ){sha256_update( &ctx, (uint8_t *) buf, 1000 );}}sha256_finish( &ctx, sha256sum );for( j = 0; j < 32; j++ ){sprintf( output + j * 2, "%02x", sha256sum[j] );}if( memcmp( output, val[i], 64 ) ){printf( "failed!\n" );return( 1 );}printf( "passed.\n" );}printf( "\n" );}else{if( ! ( f = fopen( argv[1], "rb" ) ) ){perror( "fopen" );return( 1 );}sha256_starts( &ctx );while( ( i = fread( buf, 1, sizeof( buf ), f ) ) > 0 ){sha256_update( &ctx, buf, i );}sha256_finish( &ctx, sha256sum );for( j = 0; j < 32; j++ ){printf( "%02x", sha256sum[j] );}printf( "  %s\n", argv[1] );}return( 0 );
}

学习的目标是成熟!~~~

开源项目之MD5校验工具 md5deep相关推荐

  1. 【Python数据科学 | 11】应用实战:我的第一个开源项目-基金定投回测工具

    这是机器未来的第60篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/127712752 <Python数据科学快速入 ...

  2. QT开发一款MD5校验工具

    这是一款基于QT开发的MD5校验工具,在这你可以学习到界面UI的设计方法,以及QT应对字符串的处理方法.以及如何去使用QT进行多线程的开发. 实现后的程序运行截图: MD5.pro工程文件 #---- ...

  3. 【一起学Rust | 开源项目】效率提升工具espanso——在日常输入中使用代码提示

    文章目录 前言 一.安装 二.使用 1.体验HelloWorld 2.自定义匹配规则 三.包管理 四.获取源码 总结 前言 在使用Mac时,或者说搭建学习某些教程时,总会看到大佬们在输入代码的时候输入 ...

  4. android简单项目及代码_Android 开源项目 (AOSP) 代码搜索工具正式发布

    我们非常高兴的为各位开发者们介绍一个 Android 开源项目 (AOSP) 的代码搜索工具: https://cs.android.com Android 开源项目的代码由一系列 Git 管理的代码 ...

  5. java md5验证工具_Java MD5校验工具类

    之前使用到了NIO的FileChannel做文件快速阅读,后来发现存在一个巨大的BUG,使用它会一直不释放文件句柄,即生成MD5的文件不能操作(移动或删除等),这个BUG网上吵得沸沸扬扬,至今没有解决 ...

  6. 【AI开源项目】深度学习工具一键抠图

    本文由『机器之心』授权转自, 编辑 / 昱良 对于漫画翻译人员来说,需要去除原有漫画的对话框和背景文字,并将其替换为读者使用的语言.由于一本漫画可能有数万个对话框和对话,因此工作量是很大的.现在,抠图 ...

  7. php md5校验工具下载,如何查看和校验软件的md5码?

    查看和校验软件md5码的方法步骤: 步骤一: 鼠标双击打开notepad++软件,如果没有此软件可以通过以下链接下载: 步骤二: 在工具栏中选择[工具]-[md5]-[从文件生成...],如下图所示: ...

  8. 【java小程序实战】小程序短视频后台项目之MD5加密工具类

    对字符串进行简单加密,直接上代码: package com.imooc.utils;import org.apache.commons.codec.binary.Base64;import java. ...

  9. Android开源项目第二篇——工具库篇

    本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍经常使用的开发库,包含依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本号向低版本号 ...

  10. md5修改工具_【q001】如何校验文件的MD5

    宗旨:我授你受,你问我答:一起学习,一起进步. 小牛一直努力制作会声会影系列.系统操作系列.虚拟机系列.AE系列.PS系列等软件的视频教程和图文教程. 一个文件的MD5,通俗说是一个文件的身份证,具有 ...

最新文章

  1. 需要监控JanusGraph的一些指标
  2. Linux 的cp命令
  3. javq接口_Java为什么要使用接口_java接口怎么使用
  4. java spring入门小程序_springMVC学习笔记(二)-----注解和非注解入门小程序
  5. 高效的Java集合框架GNU Trove的使用
  6. java direct memory_第一讲  JVM内存四大类型:Heap,Stack,Contant,DirectMemory等
  7. 大数据_Flink_流式处理_简介_流数据处理的应用行业---Flink工作笔记0003
  8. 网络-UDP与TCP
  9. 机器学习笔记网盘分享
  10. HTTP 1.1 协议规范
  11. 大型网站应用之海量数据和高并发解决方案总结一二!
  12. 成都11区+4县+5市高分辨率边界kml
  13. 202101汇率换算
  14. CentOS LiveCD U盘安装方法
  15. 基于微信小程序的毕业设计题目(25)php体育馆场地预约小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
  16. 速算扣除法php,介绍税收速算扣除额的计算方法。
  17. 我们的爱、相约在下辈子。这辈子、记得忘了我、(看完我哭了、一定要看)
  18. 什么是核函数?如何理解?
  19. 快手极速版最大化提现
  20. 卷积神经网络resent网络实践

热门文章

  1. OpenCV4学习笔记(71)——散焦图像去模糊滤波
  2. cisco链路聚合配置
  3. et200s模块接线图讲解_ET200S 模块说明
  4. 如果我来治理城市大气污染
  5. 26个字母与ASCII值对照表
  6. Java【付诸实践 04】Jar包class文件反编译、修改、重新编译打包方法(含反编译工具jd-gui-windows-1.6.6.zip百度云资源)
  7. 【无机纳米材料科研制图——OriginLab 0208】Origin拟合SERS拉曼光谱
  8. 测试用例(测试大纲法)
  9. R语言中混合线性模型的实现以及参数解析
  10. LPC1788 nand驱动