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
Pole bajtů naplněné pseudonáhodnými klíčovými bajty.
Výjimky
cb
je mimo rozsah. Tento parametr vyžaduje nezáporné číslo.
Příklady
Následující příklad ukazuje, jak použít metodu GetBytes k získání klíče pro instanci .Rfc2898DeriveBytes Tento příklad kódu je součástí většího příkladu Rfc2898DeriveBytes pro třídu .
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)
Poznámky
Třída Rfc2898DeriveBytes implementuje funkce PBKDF2 pomocí generátoru pseudonáhodných čísel založeného na HMACSHA1. Třída Rfc2898DeriveBytes přijímá heslo, sůl a počet iterací a pak generuje klíče prostřednictvím volání GetBytes metody . Opakované volání této metody nebude generovat stejný klíč; Místo toho připojení dvou volání GetBytes metody s hodnotou parametru cb
je 20
ekvivalentem volání GetBytes metody jednou s cb
hodnotou parametru 40
.