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 |
---|---|
|
函式成功。 |
|
hPrf 參數中的句柄無效。 |
|
一或多個參數無效。 |
|
發生記憶體配置失敗。 |
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 7 [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2008 R2 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | bcrypt.h |
程式庫 | Bcrypt.lib |
Dll | Bcrypt.dll |