bCryptHash 函数 (bcrypt.h)

执行单个哈希计算。 这是一个方便的函数,用于包装对 BCryptCreateHashBCryptHashDataBCryptFinishHashBCryptDestroyHash 的调用。

语法

NTSTATUS BCryptHash(
  BCRYPT_ALG_HANDLE hAlgorithm,
  PUCHAR            pbSecret,
  ULONG             cbSecret,
  PUCHAR            pbInput,
  ULONG             cbInput,
  PUCHAR            pbOutput,
  ULONG             cbOutput
);

参数

hAlgorithm

使用 BCryptOpenAlgorithmProvider 函数创建的算法提供程序的句柄。 创建提供程序时指定的算法必须支持哈希接口。

pbSecret

指向缓冲区的指针,该缓冲区包含要用于哈希或 MAC 的键。 cbSecret 参数包含此缓冲区的大小。 此密钥仅适用于 BCryptOpenAlgorithmProvider 函数通过使用 BCRYPT_ALG_HANDLE_HMAC 标志打开 哈希算法。 否则,请将此参数设置为 NULL

cbSecret

pbSecret 缓冲区的大小(以字节为单位)。 如果未使用任何键,请将此参数设置为零。

pbInput

指向包含要处理的数据的缓冲区的指针。 cbInput 参数包含此缓冲区中的字节数。 此函数不会修改此缓冲区的内容。

cbInput

pbInput 缓冲区中的字节数。

pbOutput

指向接收哈希或 MAC 值的缓冲区的指针。 cbOutput 参数包含此缓冲区的大小。

cbOutput

pbOutput 缓冲区的大小(以字节为单位)。 此大小必须与哈希值或 MAC 值的大小完全匹配。

可以通过调用 BCryptGetProperty 函数获取 BCRYPT_HASH_LENGTH 属性来获取 大小 。 这将提供指定算法的哈希或 MAC 值的大小。

返回值

指示成功或失败的状态代码。

要求

要求
最低受支持的客户端 Windows 10 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2016 [桌面应用 |UWP 应用]
目标平台 Windows
标头 bcrypt.h
Library Bcrypt.lib
DLL Bcrypt.dll