Rfc2898DeriveBytes.GetBytes(Int32) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает псевдослучайный ключ для этого объекта.
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()
Параметры
- cb
- Int32
Количество генерируемых псевдослучайных байтов ключей.
Возвращаемое значение
Массив байтов, заполненный псевдослучайным ключом байтов.
Исключения
cb выходит за пределы диапазона. Для этого параметра требуется не отрицательное число.
Примеры
В следующем примере показано, как использовать GetBytes метод для получения ключа для экземпляра Rfc2898DeriveBytes. Этот пример кода является частью более крупного примера, предоставленного для Rfc2898DeriveBytes класса.
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)
Комментарии
Класс Rfc2898DeriveBytes реализует функциональные возможности PBKDF2 с помощью генератора псевдорандомных чисел на основе HMACSHA1. Класс Rfc2898DeriveBytes принимает пароль, соль и число итерации, а затем создает ключи с помощью вызовов GetBytes метода. Повторяющиеся вызовы этого метода не будут создавать один и тот же ключ; Вместо этого добавление двух вызовов GetBytes метода со cb значением 20 параметра эквивалентно вызову GetBytes метода один раз со значением cb40параметра.