Rfc2898DeriveBytes.GetBytes(Int32) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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
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