Rfc2898DeriveBytes.GetBytes(Int32) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
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
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
.