Share via


Rfc2898DeriveBytes.GetBytes(Int32) Metodo

Definizione

Restituisce la chiave pseudocasuale per questo oggetto.

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()

Parametri

cb
Int32

Numero di byte chiave pseudo-casuali da generare.

Restituisce

Byte[]

Matrice di byte riempita con byte chiave pseudo-casuali.

Eccezioni

cb non è compreso nell'intervallo consentito. Per questo parametro è richiesto un numero non negativo.

Esempio

Nell'esempio seguente viene illustrato come usare il GetBytes metodo per ottenere la chiave per un'istanza di Rfc2898DeriveBytes. Questo esempio di codice fa parte di un esempio più grande fornito per 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)

Commenti

La Rfc2898DeriveBytes classe implementa la funzionalità PBKDF2 usando un generatore di numeri pseudorandom basato su HMACSHA1. La Rfc2898DeriveBytes classe accetta una password, un sale e un numero di iterazioni e quindi genera chiavi tramite chiamate al GetBytes metodo. Le chiamate ripetute a questo metodo non genereranno la stessa chiave; aggiungere invece due chiamate del GetBytes metodo con un cb valore di parametro di 20 è l'equivalente di chiamare il GetBytes metodo una volta con un cb valore di parametro di 40.

Si applica a

Vedi anche