Share via


Rfc2898DeriveBytes.GetBytes(Int32) Methode

Definition

Gibt den pseudozufälligen Schlüssel für dieses Objekt zurück.

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

Parameter

cb
Int32

Die Anzahl der zu generierenden pseudozufälligen Schlüsselbytes.

Gibt zurück

Byte[]

Ein mit pseudozufälligen Schlüsselbytes gefülltes Bytearray.

Ausnahmen

cb liegt außerhalb des Bereichs. Für diesen Parameter ist eine nicht negative Zahl erforderlich.

Beispiele

Das folgende Beispiel zeigt, wie Sie die GetBytes -Methode verwenden, um den Schlüssel für eine instance von Rfc2898DeriveBytesabzurufen. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die Rfc2898DeriveBytes-Klasse bereitgestellt wird.

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)

Hinweise

Die Rfc2898DeriveBytes -Klasse implementiert PBKDF2-Funktionalität mithilfe eines Pseudorandom-Zahlengenerators basierend auf HMACSHA1. Die Rfc2898DeriveBytes -Klasse akzeptiert ein Kennwort, ein Salt und eine Iterationsanzahl und generiert dann Schlüssel über Aufrufe der GetBytes -Methode. Wiederholte Aufrufe dieser Methode generieren nicht denselben Schlüssel. Stattdessen entspricht das Anfügen von zwei Aufrufen der GetBytes -Methode mit dem cb Parameterwert von 20 dem Aufruf der GetBytes -Methode einmal mit dem cb Parameterwert .40

Gilt für:

Weitere Informationen