int CalcSha512(PBYTE Data, DWORD DataLength, BYTE Sha512[64])
{
HCRYPTHASH hCryptHash = 0;
HCRYPTPROV hCryptProv = 0;
DWORD HashLen = 64;
int ret = 1;
do
{
if (!CryptAcquireContextW(&hCryptProv, NULL, NULL, PROV_RSA_AES, CRYPT_VERIFYCONTEXT))
break;
if (!CryptCreateHash(hCryptProv, CALG_SHA_512, 0, 0, &hCryptHash))
break;
if (!CryptHashData(hCryptHash, Data, DataLength, 0))
break;
if (!CryptGetHashParam(hCryptHash, HP_HASHVAL, Sha512, &HashLen, 0))
break;
ret = 0;
} while (0);
if (hCryptProv)
CryptReleaseContext(hCryptProv, 0);
if (hCryptHash)
CryptDestroyHash(hCryptHash);
return ret;
}
使用CryptoAPI计算SHA512哈希
由
·
发表回复