KeyDerivationParameters.BuildForPbkdf2(IBuffer, UInt32) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Cria um objeto KeyDerivationParameters para uso na função de derivação de chave baseada em senha 2 (PBKDF2).
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
Parâmetros
- pbkdf2Salt
- IBuffer
O sal, um valor aleatório ou pseudorandom a ser combinado com a senha em várias iterações. Um sal é usado para aumentar a entropia acima do que pode ser obtido usando apenas uma senha.
- iterationCount
-
UInt32
unsigned int
uint32_t
Número de iterações a serem usadas para derivar uma chave.
Retornos
Refere-se aos parâmetros usados durante a derivação de chave.
Exemplos
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;
}
Comentários
Você pode usar os seguintes nomes de algoritmo com a função OpenAlgorithm para abrir um provedor de algoritmos PBKDF2:
- KeyDerivationAlgorithmNames.Pbkdf2Md5
- KeyDerivationAlgorithmNames.Pbkdf2Sha1
- KeyDerivationAlgorithmNames.Pbkdf2Sha256
- KeyDerivationAlgorithmNames.Pbkdf2Sha384
- KeyDerivationAlgorithmNames.Pbkdf2Sha512