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
此参数是保留的,必须设置为零。
返回值
返回指示函数成功或失败的状态代码。
可能的返回代码包括但不限于以下内容。
返回代码 | 说明 |
---|---|
|
函数成功。 |
|
hPrf 参数中的句柄无效。 |
|
一个或多个参数无效。 |
|
发生内存分配失败。 |
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows Server 2008 R2 [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | bcrypt.h |
Library | Bcrypt.lib |
DLL | Bcrypt.dll |