CryptDestroyHash 函数 (wincrypt.h)

重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
 
CryptDestroyHash 函数销毁 hHash 参数引用的哈希对象。 销毁哈希对象后,将无法再使用该对象。

为了帮助确保安全性,我们建议在使用哈希对象后销毁它们。

语法

BOOL CryptDestroyHash(
  [in] HCRYPTHASH hHash
);

参数

[in] hHash

要销毁的哈希对象的句柄。

返回值

如果该函数成功,则返回值为非零值。

如果函数失败,则返回值为零。 有关扩展的错误信息,请调用 GetLastError

“NTE”开头的错误代码由你正在使用的特定 加密服务提供程序 (CSP) 生成。 一些可能的错误代码随之而来。

返回代码 说明
ERROR_BUSY
hHash 指定的哈希对象当前正在使用,无法销毁。
ERROR_INVALID_HANDLE
hHash 参数指定无效的句柄。
ERROR_INVALID_PARAMETER
hHash 参数包含无效的值。
NTE_BAD_ALGID
hHash 句柄指定此 CSP 不支持的算法。
NTE_BAD_HASH
hHash 参数指定的哈希对象无效。
NTE_BAD_UID
找不到创建哈希对象时指定的 CSP 上下文。

注解

销毁哈希对象时,许多 CSP 会覆盖保存哈希对象的 CSP 中的内存。 然后释放 CSP 内存。

调用 CryptCreateHashCryptDestroyHash 之间应该有一对一的对应关系。

必须先销毁使用特定 CSP 创建的所有哈希对象,然后才能使用 CryptReleaseContext 函数释放该 CSP 句柄。

示例

有关使用 CryptDestroyHash 函数的示例,请参阅 示例 C 程序:创建和哈希处理会话密钥

要求

   
最低受支持的客户端 Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 wincrypt.h
Library Advapi32.lib
DLL Advapi32.dll

另请参阅

CryptCreateHash

CryptHashData

CryptSignHash

哈希和数字签名函数