Bagikan melalui


Rfc2898DeriveBytes.GetBytes(Int32) Metode

Definisi

Mengembalikan kunci pseudo-random untuk objek ini.

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

Jumlah byte kunci pseudo-random yang akan dihasilkan.

Mengembalikan

Byte[]

Array byte yang diisi dengan byte kunci pseudo-random.

Pengecualian

cb berada di luar jangkauan. Parameter ini memerlukan angka non-negatif.

Contoh

Contoh berikut menunjukkan cara menggunakan GetBytes metode untuk mendapatkan kunci untuk instans Rfc2898DeriveBytes. Contoh kode ini adalah bagian dari contoh yang lebih besar yang disediakan untuk Rfc2898DeriveBytes kelas .

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)

Keterangan

Kelas mengimplementasikan Rfc2898DeriveBytes fungsionalitas PBKDF2 dengan menggunakan generator nomor pseudorandom berdasarkan HMACSHA1. Kelas Rfc2898DeriveBytes mengambil kata sandi, garam, dan jumlah perulangan, lalu menghasilkan kunci melalui panggilan ke GetBytes metode . Panggilan berulang ke metode ini tidak akan menghasilkan kunci yang sama; sebaliknya, menambahkan dua panggilan GetBytes metode dengan cb nilai 20 parameter setara dengan memanggil GetBytes metode sekali dengan cb nilai 40parameter .

Berlaku untuk

Lihat juga