다음을 통해 공유


CryptographicEngine.DeriveKeyMaterial 메서드

정의

키 파생 함수를 사용하여 다른 키에서 키를 파생합니다. 자세한 내용은 KeyDerivationAlgorithmProviderKeyDerivationParameters 클래스를 참조하세요.

public:
 static IBuffer ^ DeriveKeyMaterial(CryptographicKey ^ key, KeyDerivationParameters ^ parameters, unsigned int desiredKeySize);
 static IBuffer DeriveKeyMaterial(CryptographicKey const& key, KeyDerivationParameters const& parameters, uint32_t const& desiredKeySize);
public static IBuffer DeriveKeyMaterial(CryptographicKey key, KeyDerivationParameters parameters, uint desiredKeySize);
function deriveKeyMaterial(key, parameters, desiredKeySize)
Public Shared Function DeriveKeyMaterial (key As CryptographicKey, parameters As KeyDerivationParameters, desiredKeySize As UInteger) As IBuffer

매개 변수

key
CryptographicKey

파생에 사용되는 대칭 또는 비밀 키입니다.

parameters
KeyDerivationParameters

파생 매개 변수입니다. 매개 변수는 사용되는 KDF 알고리즘의 유형에 따라 달라집니다.

desiredKeySize
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;
}

설명

키를 파생하려면 KeyDerivationAlgorithmProviderKeyDerivationParameters 클래스를 사용해야 합니다. 다음 키 파생 함수를 사용할 수 있습니다.

다음 코드 예제를 포함하는 전체 샘플은 KeyDerivationAlgorithmProvider 클래스를 참조하세요.

적용 대상

추가 정보