使用Windows系统API计算数据和文件的MD5哈希值,支持大文件

该代码段展示了如何使用Windows系统API计算文件和数据的MD5哈希值,特别支持大文件处理。通过CryptAcquireContext、CryptCreateHash等函数进行MD5计算,并利用CreateFileMapping和MapViewOfFile处理大文件。
摘要由CSDN通过智能技术生成
// 计算数据的MD5字符串
string ComputeMD5(const char* szData, size_t len)
{
	HCRYPTPROV hCryptProv;
	HCRYPTHASH hHash;
	BYTE bHash[0x7f];
	DWORD dwHashLen= 16;
	string digest;
 
	if(CryptAcquireContext(&hCryptProv,NULL, NULL, PROV_RSA_FULL,
		CRYPT_VERIFYCONTEXT | CRYPT_MACHINE_KEYSET) &&
		CryptCreateHash(hCryptProv,CALG_MD5,0, 0, &hHash) &&
		CryptHashData(hHash, (BYTE*)szData, (DWORD)len, 0) &&
		CryptGetHashParam(hHash, HP_HASHVAL, bHash, &dwHashLen, 0))
	{
		dig
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值