• 大小: 156KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-19
  • 语言: C/C++
  • 标签: md5  hash  c  

资源简介

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


评论

共有 条评论