다음을 통해 공유


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 키 파생 알고리즘에 대한 솔트 인수를 포함하는 버퍼에 대한 포인터입니다.

참고 비밀이 아니며 키 파생에 사용되는 모든 정보는 이 버퍼에 전달되어야 합니다.
 

[in] cbSalt

pbSalt 매개 변수가 가리키는 솔트 인수의 길이(바이트)입니다.

[in] cIterations

PBKDF2 키 파생 알고리즘의 반복 횟수입니다.

[out] pbDerivedKey

파생 키를 받는 버퍼에 대한 포인터입니다.

[in] cbDerivedKey

pbDerivedKey 매개 변수가 가리키는 버퍼에서 반환된 파생 키의 길이(바이트)입니다.

[in] dwFlags

이 매개 변수는 예약되어 있으며 0으로 설정해야 합니다.

반환 값

함수의 성공 또는 실패를 나타내는 상태 코드를 반환합니다.

가능한 반환 코드에는 다음이 포함되지만 이에 국한되지는 않습니다.

반환 코드 설명
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