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

Im folgenden Beispiel wird gezeigt, wie Sie die GetBytes Methode verwenden, um den Schlüssel für eine Instanz von Rfc2898DeriveBytes. 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 Pseudorandomnummerngenerators basierend auf HMACSHA1. Die Rfc2898DeriveBytes Klasse verwendet ein Kennwort, ein Salz und eine Iterationsanzahl und generiert dann Schlüssel durch Aufrufe der GetBytes Methode. Wiederholte Aufrufe dieser Methode generieren nicht denselben Schlüssel; Stattdessen entspricht das Anfügen zweier Aufrufe der GetBytes Methode mit einem cb Parameterwert 20 dem Aufruf der GetBytes Methode einmal mit einem cb Parameterwert von 40.

Gilt für

Siehe auch