Rfc2898DeriveBytes.GetBytes(Int32) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Vrátí pseudonáhodný klíč pro tento objekt.
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()
Parametry
- cb
- Int32
Počet pseudonáhodných bajtů klíče, které se mají vygenerovat.
Návraty
Bajtové pole naplněné pseudonáhodnými bajty klíče.
Výjimky
cb je mimo rozsah. Tento parametr vyžaduje nezáporné číslo.
Příklady
Následující příklad ukazuje, jak pomocí GetBytes metody získat klíč pro instanci Rfc2898DeriveBytes. Tento příklad kódu je součástí většího příkladu uvedeného pro třídu 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)
Poznámky
Třída Rfc2898DeriveBytes implementuje funkce PBKDF2 pomocí pseudonáhodný generátor čísel založený na HMACSHA1. Třída Rfc2898DeriveBytes přebírá heslo, sůl a počet iterací a potom generuje klíče prostřednictvím volání metody GetBytes . Opakované volání této metody nevygeneruje stejný klíč; místo toho připojení dvou volání metody s GetBytes hodnotou parametru cb je ekvivalent volání 20 metody jednou s hodnotou parametru GetBytescb.40