Rfc2898DeriveBytes.GetBytes(Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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
.