• 大小: 138KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-11
  • 语言: C/C++
  • 标签: 文件管理  

资源简介

支持同一目录下重复文件查找,显示,删除。 附带exe文件,可直接运行使用,程序大小247kb。 360如果误报请添加信任

资源截图

代码片段和文件信息

#include “FileMd5.h“
#include 
#include 
#include 


/* forward declaration */
static void Transform();

static unsigned char PADDING[64] = {
0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
};

/* F G and H are basic MD5 functions: selection majority parity */
#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))) 

/* ROTATE_LEFT rotates x left n bits */
#define ROTATE_LEFT(x n) (((x) << (n)) | ((x) >> (32-(n))))

/* FF GG HH and II transformations for rounds 1 2 3 and 4 */
/* Rotation is separate from addition to prevent recomputation */
#define FF(a b c d x s ac) \
  {(a) += F ((b) (c) (d)) + (x) + (UINT4)(ac); \
   (a) = ROTATE_LEFT ((a) (s)); \
   (a) += (b); \
  }
#define GG(a b c d x s ac) \
  {(a) += G ((b) (c) (d)) + (x) + (UINT4)(ac); \
   (a) = ROTATE_LEFT ((a) (s)); \
   (a) += (b); \
  }
#define HH(a b c d x s ac) \
  {(a) += H ((b) (c) (d)) + (x) + (UINT4)(ac); \
   (a) = ROTATE_LEFT ((a) (s)); \
   (a) += (b); \
  }
#define II(a b c d x s ac) \
  {(a) += I ((b) (c) (d)) + (x) + (UINT4)(ac); \
   (a) = ROTATE_LEFT ((a) (s)); \
   (a) += (b); \
  }

void MD5Init(MD5_CTX *mdContext)
{
mdContext->i[0] = mdContext->i[1] = (UINT4)0;

/* Load magic initialization constants.
*/
mdContext->buf[0] = (UINT4)0x67452301;
mdContext->buf[1] = (UINT4)0xefcdab89;
mdContext->buf[2] = (UINT4)0x98badcfe;
mdContext->buf[3] = (UINT4)0x10325476;
}

void MD5Update(MD5_CTX *mdContext unsigned char *inBuf unsigned int inLen)
{
UINT4 in[16];
int mdi;
unsigned int i ii;

/* compute number of bytes mod 64 */
mdi = (int)((mdContext->i[0] >> 3) & 0x3F);

/* update number of bits */
if ((mdContext->i[0] + ((UINT4)inLen << 3)) < mdContext->i[0])
mdContext->i[1]++;
mdContext->i[0] += ((UINT4)inLen << 3);
mdContext->i[1] += ((UINT4)inLen >> 29);

while (inLen--) {
/* add new character to buffer increment mdi */
mdContext->in[mdi++] = *inBuf++;

/* transform if necessary */
if (mdi == 0x40) {
for (i = 0 ii = 0; i < 16; i++ ii += 4)
in[i] = (((UINT4)mdContext->in[ii + 3]) << 24) |
(((UINT4)mdContext->in[ii + 2]) << 16) |
(((UINT4)mdContext->in[ii + 1]) << 8) |
((UINT4)mdContext->in[ii]);
Transform(mdContext->buf in);
mdi = 0;
}
}
}

void MD5Final(MD5_CTX *mdContext)

{
UINT4 in[16];
int mdi;
unsigned int i ii;
unsigned int padLen;

/* save number of bits */
in[14] =

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-06-01 16:05  文件查重v1.0\
     文件         314  2018-06-01 16:11  文件查重v1.0\ReadMe.txt
     文件      252416  2018-06-01 15:41  文件查重v1.0\文件查重v1.0(将程序放到需要查重的目录下运行).exe
     目录           0  2018-06-01 16:04  文件查重v1.0\源码\
     目录           0  2018-06-01 16:11  文件查重v1.0\源码\RepeatFileCheck\
     文件         707  2018-06-01 13:50  文件查重v1.0\源码\RepeatFileCheck\FIleMd5.h
     文件        8777  2018-06-01 13:50  文件查重v1.0\源码\RepeatFileCheck\FileMd5.cpp
     文件         314  2018-06-01 16:11  文件查重v1.0\源码\RepeatFileCheck\ReadMe.txt
     文件         314  2018-06-01 16:11  文件查重v1.0\源码\RepeatFileCheck\ReadMe2.txt
     文件        6117  2018-06-01 16:00  文件查重v1.0\源码\RepeatFileCheck\RepeatFileCheck.vcxproj
     文件        2519  2018-06-01 16:00  文件查重v1.0\源码\RepeatFileCheck\源.cpp
     文件        1459  2018-05-31 21:27  文件查重v1.0\源码\RepeatFileCheck.sln

评论

共有 条评论