Rfc2898DeriveBytes.GetBytes(Int32) Yöntem

Tanım

Bu nesne için sahte rastgele anahtarı döndürür.

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

Parametreler

cb
Int32

Oluşturulacak sahte rastgele anahtar baytlarının sayısı.

Döndürülenler

Byte[]

Sahte rastgele anahtar baytlarıyla dolu bir bayt dizisi.

Özel durumlar

cb aralığın dışında. Bu parametre negatif olmayan bir sayı gerektirir.

Örnekler

Aşağıdaki örnekte, bir örneğinin anahtarını almak için yönteminin nasıl kullanılacağı GetBytes gösterilmektedir Rfc2898DeriveBytes. Bu kod örneği, sınıfı için Rfc2898DeriveBytes sağlanan daha büyük bir örneğin parçasıdır.

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)

Açıklamalar

sınıfı, Rfc2898DeriveBytes tabanlı HMACSHA1bir takma ad sayı oluşturucu kullanarak PBKDF2 işlevselliğini uygular. Rfc2898DeriveBytes sınıfı bir parola, bir tuz ve yineleme sayısı alır ve ardından yöntemine GetBytes yapılan çağrılar aracılığıyla anahtarlar oluşturur. Bu yönteme yapılan yinelenen çağrılar aynı anahtarı oluşturmaz; bunun yerine, yönteminin iki çağrısını GetBytes parametre cb değeriyle eklemek, yöntemini parametre değeriyle 20 bir cb kez çağırmanın GetBytes eşdeğeridir40.

Şunlara uygulanır

Ayrıca bkz.