Rfc2898DeriveBytes.GetBytes(Int32) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Retourne la clé pseudo-aléatoire de cet objet.
public:
override cli::array <System::Byte> ^ GetBytes(int cb);
public override byte[] GetBytes (int cb);
override this.GetBytes : int -> byte[]
Public Overrides Function GetBytes (cb As Integer) As Byte()
Paramètres
- cb
- Int32
Nombre d'octets de clé pseudo-aléatoires à générer.
Retours
Tableau d'octets rempli avec des octets de clé pseudo-aléatoires.
Exceptions
cb
est hors limites. Ce paramètre requiert un nombre non négatif.
Exemples
L’exemple suivant montre comment utiliser la GetBytes méthode pour obtenir la clé d’une instance de Rfc2898DeriveBytes. Cet exemple de code fait partie d’un exemple plus grand fourni pour la Rfc2898DeriveBytes classe .
try
{
Rfc2898DeriveBytes ^ k1 = gcnew Rfc2898DeriveBytes( pwd1,salt1,myIterations );
Rfc2898DeriveBytes ^ k2 = gcnew Rfc2898DeriveBytes( pwd1,salt1 );
// Encrypt the data.
Aes^ encAlg = Aes::Create();
encAlg->Key = k1->GetBytes( 16 );
MemoryStream^ encryptionStream = gcnew MemoryStream;
CryptoStream^ encrypt = gcnew CryptoStream( encryptionStream,encAlg->CreateEncryptor(),CryptoStreamMode::Write );
array<Byte>^utfD1 = (gcnew System::Text::UTF8Encoding( false ))->GetBytes( data1 );
try
{
Rfc2898DeriveBytes k1 = new Rfc2898DeriveBytes(pwd1, salt1,
myIterations);
Rfc2898DeriveBytes k2 = new Rfc2898DeriveBytes(pwd1, salt1);
// Encrypt the data.
Aes encAlg = Aes.Create();
encAlg.Key = k1.GetBytes(16);
MemoryStream encryptionStream = new MemoryStream();
CryptoStream encrypt = new CryptoStream(encryptionStream,
encAlg.CreateEncryptor(), CryptoStreamMode.Write);
byte[] utfD1 = new System.Text.UTF8Encoding(false).GetBytes(
data1);
Try
Dim k1 As New Rfc2898DeriveBytes(pwd1, salt1, myIterations)
Dim k2 As New Rfc2898DeriveBytes(pwd1, salt1)
' Encrypt the data.
Dim encAlg As Aes = Aes.Create()
encAlg.Key = k1.GetBytes(16)
Dim encryptionStream As New MemoryStream()
Dim encrypt As New CryptoStream(encryptionStream, encAlg.CreateEncryptor(), CryptoStreamMode.Write)
Dim utfD1 As Byte() = New System.Text.UTF8Encoding(False).GetBytes(data1)
Remarques
La Rfc2898DeriveBytes classe implémente la fonctionnalité PBKDF2 à l’aide d’un générateur de nombre pseudorandom basé sur HMACSHA1. La Rfc2898DeriveBytes classe prend un mot de passe, un sel et un nombre d’itérations, puis génère des clés via des appels à la GetBytes méthode. Les appels répétés à cette méthode ne génèrent pas la même clé ; au lieu de cela, ajouter deux appels de la GetBytes méthode avec une cb
valeur de paramètre de 20
équivaut à appeler la GetBytes méthode une fois avec une cb
valeur de paramètre de 40
.