Rfc2898DeriveBytes.GetBytes(Int32) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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 más grande 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
.