在 Windows Cryptography API: Next Generation (CNG) 中,BCryptHash 函数已被废弃。它的功能已被 BCryptCreateHash 函数取代。如果你需要创建哈希对象,应该使用 BCryptCreateHash 函数而不是 BCryptHash 函数。

以下是 BCryptCreateHash 函数的原型:
NTSTATUS BCryptCreateHash(
  BCRYPT_ALG_HANDLE hAlgorithm,
  BCRYPT_HASH_HANDLE *phHash,
  PUCHAR            pbHashObject,
  ULONG             cbHashObject,
  PUCHAR            pbSecret,
  ULONG             cbSecret,
  ULONG             dwFlags
);

这个函数用于创建一个哈希对象,其中包含了用于哈希计算的算法信息。参数和返回值的意义如下:

  •  hAlgorithm: 用于哈希计算的算法句柄。

  •  phHash: 指向哈希对象句柄的指针,该句柄将在函数成功调用后被填充。

  •  pbHashObject: 用于存储哈希对象的缓冲区。

  •  cbHashObject: pbHashObject 缓冲区的大小(以字节为单位)。

  •  pbSecret: 包含密钥的密钥值的缓冲区(可选,可以为 NULL)。

  •  cbSecret: pbSecret 缓冲区的大小(以字节为单位)。

  •  dwFlags: 控制哈希对象的创建行为的标志,通常可以设置为零。


函数的返回值是 NTSTATUS 类型,成功时返回 STATUS_SUCCESS。

请注意,BCryptHash 函数已经过时,因此建议使用 BCryptCreateHash 函数代替。在使用哈希对象进行哈希计算之前,通常需要通过 BCryptHashData 函数输入要进行哈希的数据,并通过 BCryptFinishHash 函数完成哈希计算。

总体而言,BCryptCreateHash 是用于创建哈希对象的现代 CNG 函数。


转载请注明出处:http://www.pingtaimeng.com/article/detail/24000/Win32 API/Bcrypt.h/BCryptHash