KeyDerivationParameters.BuildForPbkdf2(IBuffer, UInt32) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
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:
- KeyDerivationAlgorithmNames.Pbkdf2Md5
- KeyDerivationAlgorithmNames.Pbkdf2Sha1
- KeyDerivationAlgorithmNames.Pbkdf2Sha256
- KeyDerivationAlgorithmNames.Pbkdf2Sha384
- KeyDerivationAlgorithmNames.Pbkdf2Sha512