资源简介
c语言,vc6.0编译通过,输入文件名路径,就可以计算出文件的md5值,效率还可以的

代码片段和文件信息
#include
#include
#define F(x y z) (((x) & (y)) | ((~x) & (z)))
#define G(x y z) (((x) & (z)) | ((y) & (~z)))
#define H(x y z) ((x) ^ (y) ^ (z))
#define I(x y z) ((y) ^ ((x) | (~z)))
#define RL(x y) (((x) << (y)) | ((x) >> (32 - (y)))) //x向左循环移y位
#define PP(x) (x<<24)|((x<<8)&0xff0000)|((x>>8)&0xff00)|(x>>24) //将x高低位互换例如PP(aabbccdd)=ddccbbaa
#define FF(a b c d x s ac) a = b + (RL((a + F(bcd) + x + ac)s))
#define GG(a b c d x s ac) a = b + (RL((a + G(bcd) + x + ac)s))
#define HH(a b c d x s ac) a = b + (RL((a + H(bcd) + x + ac)s))
#define II(a b c d x s ac) a = b + (RL((a + I(bcd) + x + ac)s))
unsigned ABCDabcdilenflen[2]x[16]; //i临时变量len文件长flen[2]为64位二进制表示的文件初始长度
char filename[200]; //文件名
FILE *fp;
void md5(){ //MD5核心算法供64轮
a=Ab=Bc=Cd=D;
/**//* Round 1 */
FF (a b c d x[ 0] 7 0xd76aa478); /**//* 1 */
FF (d a b c x[ 1] 12 0xe8c7b756); /**//* 2 */
FF (c d a b x[ 2] 17 0x242070db); /**//* 3 */
FF (b c d a x[ 3] 22 0xc1bdceee); /**//* 4 */
FF (a b c d x[ 4] 7 0xf57c0faf); /**//* 5 */
FF (d a b c x[ 5] 12 0x4787c62a); /**//* 6 */
FF (c d a b x[ 6] 17 0xa8304613); /**//* 7 */
FF (b c d a x[ 7] 22 0xfd469501); /**//* 8 */
FF (a b c d x[ 8] 7 0x698098d8); /**//* 9 */
FF (d a b c x[ 9] 12 0x8b44f7af); /**//* 10 */
FF (c d a b x[10] 17 0xffff5bb1); /**//* 11 */
FF (b c d a x[11] 22 0x895cd7be); /**//* 12 */
FF (a b c d x[12] 7 0x6b901122); /**//* 13 */
FF (d a b c x[13] 12 0xfd987193); /**//* 14 */
FF (c d a b x[14] 17 0xa679438e); /**//* 15 */
FF (b c d a x[15] 22 0x49b40821); /**//* 16 */
/**//* Round 2 */
GG (a b c d x[ 1] 5 0xf61e2562); /**//* 17 */
GG (d a b c x[ 6] 9 0xc040b340); /**//* 18 */
GG (c d a b x[11] 14 0x265e5a51); /**//* 19 */
GG (b c d a x[ 0] 20 0xe9b6c7aa); /**//* 20 */
GG (a b c d x[ 5] 5 0xd62f105d); /**//* 21 */
GG (d a b c x[10] 9 0x02441453); /**//* 22 */
GG (c d a b x[15] 14 0xd8a1e681); /**//* 23 */
GG (b c d a x[ 4] 20 0xe7d3fbc8); /**//* 24 */
GG (a b c d x[ 9] 5 0x21e1cde6); /**//* 25 */
GG (d a b c x[14] 9 0xc33707d6); /**//* 26 */
GG (c d a b x[ 3] 14 0xf4d50d87); /**//* 27 */
GG (b c d a x[ 8] 20 0x455a14ed); /**//* 28 */
GG (a b c d x[13] 5 0xa9e3e905); /**//* 29 */
GG (d a b c x[ 2] 9 0xfcefa3f8); /**//* 30 */
GG (c d a b x[ 7] 14 0x676f02d9); /**//* 31 */
GG (b c d a x[12] 20 0x8d2a4c8a); /**//* 32 */
/**//* Round 3 */
HH (a b c d x[ 5] 4 0xfffa3942); /**//* 33 */
HH (d a b c x[ 8] 11 0x8771f681); /**//* 34 */
HH (c d a b x[11] 16 0x6d9d6122); /**//* 35 */
HH (b c d a x[14] 23 0xfde5380c); /**//* 36 */
HH (a b c d x[ 1] 4 0xa4beea44); /
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 176179 2013-05-11 12:58 md5\Debug\md5.exe
文件 178212 2013-05-11 12:58 md5\Debug\md5.ilk
文件 22130 2013-05-11 12:58 md5\Debug\md5.obj
I.A.... 182124 2013-05-11 12:58 md5\Debug\md5.pch
文件 353280 2013-05-11 12:58 md5\Debug\md5.pdb
文件 33792 2013-05-11 12:58 md5\Debug\vc60.idb
文件 45056 2013-05-11 12:58 md5\Debug\vc60.pdb
文件 5984 2013-05-09 20:36 md5\md5.c
文件 3363 2013-05-11 12:58 md5\md5.dsp
文件 529 2013-05-11 12:58 md5\md5.dsw
文件 41984 2013-05-11 12:58 md5\md5.ncb
文件 48640 2013-05-11 12:58 md5\md5.opt
文件 240 2013-05-11 12:58 md5\md5.plg
目录 0 2013-05-11 12:58 md5\Debug
目录 0 2013-05-11 12:58 md5
----------- --------- ---------- ----- ----
1091513 15
- 上一篇:操作系统实习:动态分区分配C++实现
- 下一篇:图的实现:邻接表
相关资源
- 国际象棋的qt源代码
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- 基于mfc的多线程文件传输
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 利用C++哈希表的方法实现电话号码查
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 移木块游戏,可以自编自玩,vc6.0编写
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- C++纯文字DOS超小RPG游戏
- 个人日常财务管理系统(C语言)
- MFC数字钟(基于VC6.0)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
评论
共有 条评论