KeyDerivationParameters.BuildForPbkdf2(IBuffer, UInt32) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
암호 기반 키 파생 함수 2(PBKDF2)에서 사용할 KeyDerivationParameters 개체를 만듭니다.
public:
static KeyDerivationParameters ^ BuildForPbkdf2(IBuffer ^ pbkdf2Salt, unsigned int iterationCount);
static KeyDerivationParameters BuildForPbkdf2(IBuffer const& pbkdf2Salt, uint32_t const& iterationCount);
public static KeyDerivationParameters BuildForPbkdf2(IBuffer pbkdf2Salt, uint iterationCount);
function buildForPbkdf2(pbkdf2Salt, iterationCount)
Public Shared Function BuildForPbkdf2 (pbkdf2Salt As IBuffer, iterationCount As UInteger) As KeyDerivationParameters
매개 변수
- pbkdf2Salt
- IBuffer
여러 반복에서 암호와 결합할 임의 또는 의사 난수 값인 솔트입니다. 솔트(salt)는 암호만 사용하여 얻을 수 있는 항목보다 높은 엔트로피를 늘리는 데 사용됩니다.
- iterationCount
-
UInt32
unsigned int
uint32_t
키를 파생하는 데 사용할 반복 횟수입니다.
반환
키 파생 중에 사용되는 매개 변수를 참조합니다.
예제
public String SampleDeriveFromPbkdf(
String strAlgName,
UInt32 targetSize)
{
// Open the specified algorithm.
KeyDerivationAlgorithmProvider objKdfProv = KeyDerivationAlgorithmProvider.OpenAlgorithm(strAlgName);
// Create a buffer that contains the secret used during derivation.
String strSecret = "MyPassword";
IBuffer buffSecret = CryptographicBuffer.ConvertStringToBinary(strSecret, BinaryStringEncoding.Utf8);
// Create a random salt value.
IBuffer buffSalt = CryptographicBuffer.GenerateRandom(32);
// Specify the number of iterations to be used during derivation.
UInt32 iterationCount = 10000;
// Create the derivation parameters.
KeyDerivationParameters pbkdf2Params = KeyDerivationParameters.BuildForPbkdf2(buffSalt, iterationCount);
// Create a key from the secret value.
CryptographicKey keyOriginal = objKdfProv.CreateKey(buffSecret);
// Derive a key based on the original key and the derivation parameters.
IBuffer keyDerived = CryptographicEngine.DeriveKeyMaterial(
keyOriginal,
pbkdf2Params,
targetSize);
// Encode the key to a hexadecimal value (for display)
String strKeyHex = CryptographicBuffer.EncodeToHexString(keyDerived);
// Return the encoded string
return strKeyHex;
}
설명
OpenAlgorithm 함수와 함께 다음 알고리즘 이름을 사용하여 PBKDF2 알고리즘 공급자를 열 수 있습니다.
- KeyDerivationAlgorithmNames.Pbkdf2Md5
- KeyDerivationAlgorithmNames.Pbkdf2Sha1
- KeyDerivationAlgorithmNames.Pbkdf2Sha256
- KeyDerivationAlgorithmNames.Pbkdf2Sha384
- KeyDerivationAlgorithmNames.Pbkdf2Sha512