KeyDerivationParameters.BuildForPbkdf2(IBuffer, UInt32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Crea un objeto KeyDerivationParameters para su uso en la función de derivación de claves basada en contraseña 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
El valor salt, un valor aleatorio o pseudoaleatorio que se va a combinar con la contraseña en varias iteraciones. Una sal se usa para aumentar la entropía por encima de lo que se puede obtener mediante una contraseña por sí sola.
- iterationCount
-
UInt32
unsigned int
uint32_t
Número de iteraciones que se van a usar para derivar una clave.
Devoluciones
Hace referencia a los parámetros usados durante la derivación de claves.
Ejemplos
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;
}
Comentarios
Puede usar los siguientes nombres de algoritmo con la función OpenAlgorithm para abrir un proveedor de algoritmos PBKDF2:
- KeyDerivationAlgorithmNames.Pbkdf2Md5
- KeyDerivationAlgorithmNames.Pbkdf2Sha1
- KeyDerivationAlgorithmNames.Pbkdf2Sha256
- KeyDerivationAlgorithmNames.Pbkdf2Sha384
- KeyDerivationAlgorithmNames.Pbkdf2Sha512