开源项目之MD5校验工具 md5deep
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相关推荐
- 【Python数据科学 | 11】应用实战:我的第一个开源项目-基金定投回测工具
这是机器未来的第60篇文章 原文首发地址:https://robotsfutures.blog.csdn.net/article/details/127712752 <Python数据科学快速入 ...
- QT开发一款MD5校验工具
这是一款基于QT开发的MD5校验工具,在这你可以学习到界面UI的设计方法,以及QT应对字符串的处理方法.以及如何去使用QT进行多线程的开发. 实现后的程序运行截图: MD5.pro工程文件 #---- ...
- 【一起学Rust | 开源项目】效率提升工具espanso——在日常输入中使用代码提示
文章目录 前言 一.安装 二.使用 1.体验HelloWorld 2.自定义匹配规则 三.包管理 四.获取源码 总结 前言 在使用Mac时,或者说搭建学习某些教程时,总会看到大佬们在输入代码的时候输入 ...
- android简单项目及代码_Android 开源项目 (AOSP) 代码搜索工具正式发布
我们非常高兴的为各位开发者们介绍一个 Android 开源项目 (AOSP) 的代码搜索工具: https://cs.android.com Android 开源项目的代码由一系列 Git 管理的代码 ...
- java md5验证工具_Java MD5校验工具类
之前使用到了NIO的FileChannel做文件快速阅读,后来发现存在一个巨大的BUG,使用它会一直不释放文件句柄,即生成MD5的文件不能操作(移动或删除等),这个BUG网上吵得沸沸扬扬,至今没有解决 ...
- 【AI开源项目】深度学习工具一键抠图
本文由『机器之心』授权转自, 编辑 / 昱良 对于漫画翻译人员来说,需要去除原有漫画的对话框和背景文字,并将其替换为读者使用的语言.由于一本漫画可能有数万个对话框和对话,因此工作量是很大的.现在,抠图 ...
- php md5校验工具下载,如何查看和校验软件的md5码?
查看和校验软件md5码的方法步骤: 步骤一: 鼠标双击打开notepad++软件,如果没有此软件可以通过以下链接下载: 步骤二: 在工具栏中选择[工具]-[md5]-[从文件生成...],如下图所示: ...
- 【java小程序实战】小程序短视频后台项目之MD5加密工具类
对字符串进行简单加密,直接上代码: package com.imooc.utils;import org.apache.commons.codec.binary.Base64;import java. ...
- Android开源项目第二篇——工具库篇
本文为那些不错的Android开源项目第二篇--开发工具库篇,主要介绍经常使用的开发库,包含依赖注入框架.图片缓存.网络相关.数据库ORM建模.Android公共库.Android 高版本号向低版本号 ...
- md5修改工具_【q001】如何校验文件的MD5
宗旨:我授你受,你问我答:一起学习,一起进步. 小牛一直努力制作会声会影系列.系统操作系列.虚拟机系列.AE系列.PS系列等软件的视频教程和图文教程. 一个文件的MD5,通俗说是一个文件的身份证,具有 ...
最新文章
- 需要监控JanusGraph的一些指标
- Linux 的cp命令
- javq接口_Java为什么要使用接口_java接口怎么使用
- java spring入门小程序_springMVC学习笔记(二)-----注解和非注解入门小程序
- 高效的Java集合框架GNU Trove的使用
- java direct memory_第一讲 JVM内存四大类型:Heap,Stack,Contant,DirectMemory等
- 大数据_Flink_流式处理_简介_流数据处理的应用行业---Flink工作笔记0003
- 网络-UDP与TCP
- 机器学习笔记网盘分享
- HTTP 1.1 协议规范
- 大型网站应用之海量数据和高并发解决方案总结一二!
- 成都11区+4县+5市高分辨率边界kml
- 202101汇率换算
- CentOS LiveCD U盘安装方法
- 基于微信小程序的毕业设计题目(25)php体育馆场地预约小程序(含开题报告、任务书、中期报告、答辩PPT、论文模板)
- 速算扣除法php,介绍税收速算扣除额的计算方法。
- 我们的爱、相约在下辈子。这辈子、记得忘了我、(看完我哭了、一定要看)
- 什么是核函数?如何理解?
- 快手极速版最大化提现
- 卷积神经网络resent网络实践