CryptHashData 函数 (wincrypt.h)
重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
在调用此函数之前,必须调用 CryptCreateHash 来创建哈希对象的句柄。
语法
BOOL CryptHashData(
[in] HCRYPTHASH hHash,
[in] const BYTE *pbData,
[in] DWORD dwDataLen,
[in] DWORD dwFlags
);
参数
[in] hHash
哈希对象的句柄。
[in] pbData
指向缓冲区的指针,该缓冲区包含要添加到哈希对象中的数据。
[in] dwDataLen
要添加的数据的字节数。 如果设置了CRYPT_USERDATA标志,则此值必须为零。
[in] dwFlags
定义了以下标志值。
值 | 含义 |
---|---|
|
未使用此标志。 |
|
所有 Microsoft 加密提供程序都忽略此参数。 对于任何不忽略此参数的 CSP,如果设置了此标志,CSP 将提示用户直接输入数据。 此数据将添加到哈希中。 不允许应用程序访问数据。 此标志可用于允许用户在系统中输入 PIN。 |
返回值
如果函数成功,则返回值为 TRUE。
如果函数失败,则返回值为 FALSE。 有关扩展的错误信息,请调用 GetLastError。
“NTE”开头的错误代码由你使用的特定 CSP 生成。 一些可能的错误代码随之而来。
返回代码 | 说明 |
---|---|
|
其中一个参数指定无效的句柄。 |
|
其中一个参数包含无效的值。 这通常是无效的指针。 |
|
hHash 句柄指定此 CSP 不支持的算法。 |
|
dwFlags 参数包含无效的值。 |
|
hHash 参数指定的哈希对象无效。 |
|
尝试将数据添加到已标记为“已完成”的哈希对象。 |
|
正在使用键控哈希算法,但会话密钥不再有效。 如果在哈希操作完成之前销毁会话密钥,则会生成此错误。 |
|
CSP 不会忽略 CRYPT_USERDATA 标志,该标志已设置, 并且 dwDataLen 参数具有非零值。 |
|
找不到创建哈希对象时指定的 CSP 上下文。 |
|
函数以某种意外方式失败。 |
|
CSP 在操作期间内存不足。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Advapi32.lib |
DLL | Advapi32.dll |