CryptographicEngine.DeriveKeyMaterial Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Leitet einen Schlüssel von einem anderen Schlüssel mithilfe einer Schlüsselableitungsfunktion ab. Weitere Informationen finden Sie in den Klassen KeyDerivationAlgorithmProvider und 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
Parameter
- key
- CryptographicKey
Der symmetrische oder geheime Schlüssel, der für die Ableitung verwendet wird.
- parameters
- KeyDerivationParameters
Ableitungsparameter. Die Parameter variieren je nach Typ des verwendeten KDF-Algorithmus.
- desiredKeySize
-
UInt32
unsigned int
uint32_t
Die angeforderte Größe des abgeleiteten Schlüssels in Bytes.
Gibt zurück
Puffer, der den abgeleiteten Schlüssel enthält.
Beispiele
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;
}
Hinweise
Für das Ableiten von Schlüsseln müssen Sie die Klassen KeyDerivationAlgorithmProvider und KeyDerivationParameters verwenden. Die folgenden Schlüsselableitungsfunktionen können verwendet werden:
Ein vollständiges Beispiel, das das folgende Codebeispiel enthält, finden Sie in der KeyDerivationAlgorithmProvider-Klasse .