CryptographicEngine.DeriveKeyMaterial 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
키 파생 함수를 사용하여 다른 키에서 키를 파생합니다. 자세한 내용은 KeyDerivationAlgorithmProvider 및 KeyDerivationParameters 클래스를 참조하세요.
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;
}
설명
키를 파생하려면 KeyDerivationAlgorithmProvider 및 KeyDerivationParameters 클래스를 사용해야 합니다. 다음 키 파생 함수를 사용할 수 있습니다.
다음 코드 예제를 포함하는 전체 샘플은 KeyDerivationAlgorithmProvider 클래스를 참조하세요.