Share via


KeyDerivationParameters.BuildForPbkdf2(IBuffer, UInt32) Metode

Definisi

Membuat objek KeyDerivationParameters untuk digunakan dalam fungsi turunan kunci berbasis kata sandi 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

Parameter

pbkdf2Salt
IBuffer

Garam, nilai acak atau pseudorandom untuk digabungkan dengan kata sandi dalam beberapa iterasi. Garam digunakan untuk meningkatkan entropi di atas apa yang dapat diperoleh dari menggunakan kata sandi saja.

iterationCount
UInt32

unsigned int

uint32_t

Jumlah iterasi yang akan digunakan untuk mendapatkan kunci.

Mengembalikan

Mengacu pada parameter yang digunakan selama derivasi kunci.

Contoh

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;
}

Keterangan

Anda dapat menggunakan nama algoritma berikut dengan fungsi OpenAlgorithm untuk membuka penyedia algoritma PBKDF2:

Berlaku untuk