Condividi tramite


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ù ampio 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 pseudorandomi basato su HMACSHA1. La Rfc2898DeriveBytes classe accetta una password, un salt e un conteggio delle iterazioni e quindi genera le chiavi tramite chiamate al GetBytes metodo . Le chiamate ripetute a questo metodo non genereranno la stessa chiave; L'aggiunta di due chiamate del GetBytes metodo con un cb valore di parametro è 20 invece equivalente alla chiamata del GetBytes metodo una sola volta con un cb valore di parametro .40

Si applica a

Vedi anche