Compartir a través de


KeyDerivationParameters.BuildForPbkdf2(IBuffer, UInt32) Método

Definición

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:

Se aplica a