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 所產生。 以下是一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
其中一個參數指定無效的句柄。 |
|
其中一個參數包含無效的值。 這通常是無效的指標。 |
|
hHash 句柄指定此 CSP 不支持的演算法。 |
|
dwFlags 參數包含無效的值。 |
|
hHash 參數指定的哈希對象無效。 |
|
嘗試將數據新增至已標示為「已完成」的哈希物件。 |
|
正在使用金鑰哈希演算法,但會話密鑰已不再有效。 如果在哈希作業完成之前終結會話密鑰,就會產生此錯誤。 |
|
CSP 不會忽略CRYPT_USERDATA旗標、已設定旗標,且 dwDataLen 參數具有非零值。 |
|
找不到建立哈希物件時所指定的 CSP 內容。 |
|
函式以非預期的方式失敗。 |
|
CSP 在作業期間記憶體不足。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Advapi32.lib |
Dll | Advapi32.dll |