다음을 통해 공유


KeyDerivationParameters.BuildForPbkdf2(IBuffer, UInt32) 메서드

정의

암호 기반 키 파생 함수 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 알고리즘 공급자를 열 수 있습니다.

적용 대상