资源简介
支持同一目录下重复文件查找,显示,删除。
附带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
- 上一篇:C语言课程设计记事本
- 下一篇:MFC_unicode相关链接库
评论
共有 条评论