Partager via


Rfc2898DeriveBytes.GetBytes(Int32) Méthode

Définition

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

Byte[]

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.

S’applique à

Voir aussi