共用方式為


BCryptDeriveKeyPBKDF2 函式 (bcrypt.h)

BCryptDeriveKeyPBKDF2 函式會使用 RFC 2898 所定義的 PBKDF2 密鑰衍生演算法,從哈希值衍生密鑰。

語法

NTSTATUS BCryptDeriveKeyPBKDF2(
  [in]           BCRYPT_ALG_HANDLE hPrf,
  [in, optional] PUCHAR            pbPassword,
  [in]           ULONG             cbPassword,
  [in, optional] PUCHAR            pbSalt,
  [in]           ULONG             cbSalt,
  [in]           ULONGLONG         cIterations,
  [out]          PUCHAR            pbDerivedKey,
  [in]           ULONG             cbDerivedKey,
  [in]           ULONG             dwFlags
);

參數

[in] hPrf

提供虛擬隨機函式的演算法提供者句柄。 這應該是執行 訊息驗證碼 計算的演算法提供者。 當您使用預設的 Microsoft 演算法提供者時,可以使用使用 BCRYPT_ALG_HANDLE_HMAC_FLAG 旗標開啟的任何哈希演算法

注意 只有實作 BCRYPT_IS_KEYED_HASH 屬性的演算法可用來填入此參數。
 

[in, optional] pbPassword

緩衝區的指標,其中包含 PBKDF2 金鑰衍生演演算法的密碼參數。

注意 密鑰衍生中使用的任何秘密資訊都應該在此緩衝區中傳遞。

 

[in] cbPassword

pbPassword 參數所指向之緩衝區中數據的長度,以位元組為單位。

[in, optional] pbSalt

緩衝區的指標,其中包含 PBKDF2 金鑰衍生演算法的 salt 自變數。

注意 任何非秘密且用於密鑰衍生的資訊都應該在此緩衝區中傳遞。
 

[in] cbSalt

pbSalt 參數所指向之 salt 自變數的長度,以位元組為單位。

[in] cIterations

PBKDF2 密鑰衍生演演算法的反覆項目計數。

[out] pbDerivedKey

接收衍生金鑰之緩衝區的指標。

[in] cbDerivedKey

pbDerivedKey 參數所指向之緩衝區中傳回之衍生密鑰的長度,以位元組為單位。

[in] dwFlags

此參數是保留的,而且必須設定為零。

傳回值

傳回狀態代碼,指出函式的成功或失敗。

可能的傳回碼包括但不限於下列專案。

傳回碼 Description
STATUS_SUCCESS
函式成功。
STATUS_INVALID_HANDLE
hPrf 參數中的句柄無效。
STATUS_INVALID_PARAMETER
一或多個參數無效。
STATUS_NO_MEMORY
發生記憶體配置失敗。

規格需求

需求
最低支援的用戶端 Windows 7 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 bcrypt.h
程式庫 Bcrypt.lib
Dll Bcrypt.dll