md5校验

static void MDFile(char *filename)
{
	FILE *file;
	MD5_CTX context;
	int len;
	unsigned char buffer[1024], digest[16];

	if ((file = fopen(filename, "rb")) == NULL)
		printf("%s can't be opened\n", filename);

	else {
		MD5Init(&context);
		while (len = fread(buffer, 1, 1024, file))
			MD5Update(&context, buffer, len);
		MD5Final(&context, digest);

		for (int i = 0; i < 16; i++)
		{
			printf("%02x", digest[i]); 
		}

		fclose(file);

	}
}

static void MDString()
{
	MD5_CTX md5;
	MD5Init(&md5);
	int i;
	unsigned char encrypt[] = "admin";//21232f297a57a5a743894a0e4a801fc3  
	unsigned char decrypt[16];
	MD5Update(&md5, encrypt, strlen((char *)encrypt));
	MD5Final(&md5, decrypt);
	printf("加密前:%s\n加密后16位:", encrypt);
	for (i = 0; i < 8; i++)
	{
		printf("%02x", decrypt[i]);  //02x前需要加上 %  
	}

	printf("\n加密前:%s\n加密后32位:", encrypt);
	for (i = 0; i < 16; i++)
	{
		printf("%02x", decrypt[i]);  //02x前需要加上 %  
	}

	getchar();

	return ;
}

int main(int argc, char *argv[])
{
	char* pfile = "test.txt";
	MDFile(pfile);
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值