Rfc2898DeriveBytes.GetBytes(Int32) Método

Definición

Devuelve la clave pseudoaleatoria para este objeto.

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

Parámetros

cb
Int32

Número de bytes de clave pseudoaleatorios que se van a generar.

Devoluciones

Byte[]

Matriz de bytes rellena de bytes de clave pseudoaleatorios.

Excepciones

cb está fuera del intervalo. Este parámetro requiere un número no negativo.

Ejemplos

En el ejemplo siguiente se muestra cómo usar el GetBytes método para obtener la clave de una instancia de Rfc2898DeriveBytes. Este ejemplo de código es parte de un ejemplo mayor proporcionado para la clase Rfc2898DeriveBytes.

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)

Comentarios

La Rfc2898DeriveBytes clase implementa la funcionalidad PBKDF2 mediante un generador de números pseudoaleatorios basado en HMACSHA1. La Rfc2898DeriveBytes clase toma una contraseña, una sal y un recuento de iteraciones y, a continuación, genera claves a través de llamadas al GetBytes método . Las llamadas repetidas a este método no generarán la misma clave; en su lugar, anexar dos llamadas del GetBytes método con un cb valor de parámetro de 20 es el equivalente de llamar al GetBytes método una vez con un cb valor de parámetro de 40.

Se aplica a

Consulte también