Rfc2898DeriveBytes Konstruktorok
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Inicializálja a Rfc2898DeriveBytes osztály új példányát.
Túlterhelések
| Name | Description |
|---|---|
| Rfc2898DeriveBytes(String, Byte[]) |
Inicializálja az Rfc2898DeriveBytes osztály új példányát jelszó és só használatával a kulcs levezetéséhez. |
| Rfc2898DeriveBytes(String, Int32) |
Inicializálja az osztály új példányát a Rfc2898DeriveBytes jelszó és a sóméret használatával a kulcs levezetéséhez. |
| Rfc2898DeriveBytes(Byte[], Byte[], Int32) |
Inicializálja az Rfc2898DeriveBytes osztály új példányát jelszó, só és iterációk számával a kulcs levezetéséhez. |
| Rfc2898DeriveBytes(String, Byte[], Int32) |
Inicializálja az Rfc2898DeriveBytes osztály új példányát jelszó, só és iterációk számával a kulcs levezetéséhez. |
| Rfc2898DeriveBytes(String, Int32, Int32) |
Az osztály új példányát Rfc2898DeriveBytes inicializálja jelszó, sóméret és iterációk számával a kulcs levezetéséhez. |
| Rfc2898DeriveBytes(Byte[], Byte[], Int32, HashAlgorithmName) |
Inicializálja az osztály új példányát a Rfc2898DeriveBytes megadott jelszóval, sóval, iterációk számával és a kivonatoló algoritmus nevével a kulcs levezetéséhez. |
| Rfc2898DeriveBytes(String, Byte[], Int32, HashAlgorithmName) |
Inicializálja az osztály új példányát a Rfc2898DeriveBytes megadott jelszóval, sóval, iterációk számával és a kivonatoló algoritmus nevével a kulcs levezetéséhez. |
| Rfc2898DeriveBytes(String, Int32, Int32, HashAlgorithmName) |
Inicializálja az osztály új példányát a Rfc2898DeriveBytes megadott jelszó, sóméret, iterációk száma és a kivonatoló algoritmus nevének használatával a kulcs levezetéséhez. |
Rfc2898DeriveBytes(String, Byte[])
Inicializálja az Rfc2898DeriveBytes osztály új példányát jelszó és só használatával a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(System::String ^ password, cli::array <System::Byte> ^ salt);
public Rfc2898DeriveBytes(string password, byte[] salt);
new System.Security.Cryptography.Rfc2898DeriveBytes : string * byte[] -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As String, salt As Byte())
Paraméterek
- password
- String
A kulcs származtatásához használt jelszó.
- salt
- Byte[]
A kulcs levezetéséhez használt kulcssó.
Kivételek
A megadott sóméret kisebb, mint 8 bájt, vagy az iterációk száma kisebb, mint 1.
A jelszó vagy a só.null
Példák
Az alábbi példakód az Rfc2898DeriveBytes osztály használatával hoz létre két azonos kulcsot az Aes osztályhoz. Ezután titkosít és visszafejt bizonyos adatokat a kulcsok használatával.
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
public class rfc2898test
{
// Generate a key k1 with password pwd1 and salt salt1.
// Generate a key k2 with password pwd1 and salt salt1.
// Encrypt data1 with key k1 using symmetric encryption, creating edata1.
// Decrypt edata1 with key k2 using symmetric decryption, creating data2.
// data2 should equal data1.
private const string usageText = "Usage: RFC2898 <password>\nYou must specify the password for encryption.\n";
public static void Main(string[] passwordargs)
{
//If no file name is specified, write usage text.
if (passwordargs.Length == 0)
{
Console.WriteLine(usageText);
}
else
{
string pwd1 = passwordargs[0];
// Create a byte array to hold the random value.
byte[] salt1 = new byte[8];
using (RandomNumberGenerator rng = RandomNumberGenerator.Create())
{
// Fill the array with a random value.
rng.GetBytes(salt1);
}
//data1 can be a string or contents of a file.
string data1 = "Some test data";
//The default iteration count is 1000 so the two methods use the same iteration count.
int myIterations = 1000;
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);
encrypt.Write(utfD1, 0, utfD1.Length);
encrypt.FlushFinalBlock();
encrypt.Close();
byte[] edata1 = encryptionStream.ToArray();
k1.Reset();
// Try to decrypt, thus showing it can be round-tripped.
Aes decAlg = Aes.Create();
decAlg.Key = k2.GetBytes(16);
decAlg.IV = encAlg.IV;
MemoryStream decryptionStreamBacking = new MemoryStream();
CryptoStream decrypt = new CryptoStream(
decryptionStreamBacking, decAlg.CreateDecryptor(), CryptoStreamMode.Write);
decrypt.Write(edata1, 0, edata1.Length);
decrypt.Flush();
decrypt.Close();
k2.Reset();
string data2 = new UTF8Encoding(false).GetString(
decryptionStreamBacking.ToArray());
if (!data1.Equals(data2))
{
Console.WriteLine("Error: The two values are not equal.");
}
else
{
Console.WriteLine("The two values are equal.");
Console.WriteLine("k1 iterations: {0}", k1.IterationCount);
Console.WriteLine("k2 iterations: {0}", k2.IterationCount);
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e);
}
}
}
}
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography
Public Class rfc2898test
' Generate a key k1 with password pwd1 and salt salt1.
' Generate a key k2 with password pwd1 and salt salt1.
' Encrypt data1 with key k1 using symmetric encryption, creating edata1.
' Decrypt edata1 with key k2 using symmetric decryption, creating data2.
' data2 should equal data1.
Private Const usageText As String = "Usage: RFC2898 <password>" + vbLf + "You must specify the password for encryption." + vbLf
Public Shared Sub Main(ByVal passwordargs() As String)
'If no file name is specified, write usage text.
If passwordargs.Length = 0 Then
Console.WriteLine(usageText)
Else
Dim pwd1 As String = passwordargs(0)
Dim salt1(8) As Byte
Using rng As RandomNumberGenerator = RandomNumberGenerator.Create()
rng.GetBytes(salt1)
End Using
'data1 can be a string or contents of a file.
Dim data1 As String = "Some test data"
'The default iteration count is 1000 so the two methods use the same iteration count.
Dim myIterations As Integer = 1000
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)
encrypt.Write(utfD1, 0, utfD1.Length)
encrypt.FlushFinalBlock()
encrypt.Close()
Dim edata1 As Byte() = encryptionStream.ToArray()
k1.Reset()
' Try to decrypt, thus showing it can be round-tripped.
Dim decAlg As Aes = Aes.Create()
decAlg.Key = k2.GetBytes(16)
decAlg.IV = encAlg.IV
Dim decryptionStreamBacking As New MemoryStream()
Dim decrypt As New CryptoStream(decryptionStreamBacking, decAlg.CreateDecryptor(), CryptoStreamMode.Write)
decrypt.Write(edata1, 0, edata1.Length)
decrypt.Flush()
decrypt.Close()
k2.Reset()
Dim data2 As String = New UTF8Encoding(False).GetString(decryptionStreamBacking.ToArray())
If Not data1.Equals(data2) Then
Console.WriteLine("Error: The two values are not equal.")
Else
Console.WriteLine("The two values are equal.")
Console.WriteLine("k1 iterations: {0}", k1.IterationCount)
Console.WriteLine("k2 iterations: {0}", k2.IterationCount)
End If
Catch e As Exception
Console.WriteLine("Error: ", e)
End Try
End If
End Sub
End Class
Megjegyzések
A sóméretnek legalább 8 bájtnak kell lennie.
Az RFC 2898 egy kulcs- és inicializálási vektor (IV) jelszóból és sóból történő létrehozására szolgáló módszereket tartalmaz. A PBKDF2 jelszóalapú kulcslevezetési függvény használatával olyan pszeudo-véletlenszerű függvény használatával származtathatja a kulcsokat, amelyek gyakorlatilag korlátlan hosszúságú kulcsokat hoznak létre. Az Rfc2898DeriveBytes osztály használható származtatott kulcs létrehozásához egy alapkulcsból és más paraméterekből. A jelszóalapú kulcs származtatási függvényben az alapkulcs egy jelszó, a többi paraméter pedig egy sóérték és egy iterációs szám.
További információ a PBKDF2-ről: "PKCS #5: Password-Based Titkosítási specifikáció 2.0-s verziója" című RFC 2898-at. A részletekért tekintse meg az 5.2.,"PBKDF2" szakaszt.
Important
Soha ne kódjon jelszót a forráskódon belül. A kemény kóddal kódolt jelszavak a Ildasm.exe (IL Disassembler) használatával, hexadecimális szerkesztő használatával, vagy egyszerűen a szerelvény megnyitásával kérhetők le egy szövegszerkesztőben, például Notepad.exe.
Lásd még
A következőre érvényes:
Rfc2898DeriveBytes(String, Int32)
Inicializálja az osztály új példányát a Rfc2898DeriveBytes jelszó és a sóméret használatával a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(System::String ^ password, int saltSize);
public Rfc2898DeriveBytes(string password, int saltSize);
new System.Security.Cryptography.Rfc2898DeriveBytes : string * int -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As String, saltSize As Integer)
Paraméterek
- password
- String
A kulcs származtatásához használt jelszó.
- saltSize
- Int32
Annak a véletlenszerű sónak a mérete, amelyet az osztálynak létre szeretne hozni.
Kivételek
A megadott sóméret kisebb, mint 8 bájt.
A jelszó vagy a só.null
Megjegyzések
A sóméretnek legalább 8 bájtnak kell lennie.
Az RFC 2898 egy kulcs- és inicializálási vektor (IV) jelszóból és sóból történő létrehozására szolgáló módszereket tartalmaz. A PBKDF2 jelszóalapú kulcslevezetési függvény használatával olyan pszeudo-véletlenszerű függvény használatával származtathatja a kulcsokat, amelyek gyakorlatilag korlátlan hosszúságú kulcsokat hoznak létre. Az Rfc2898DeriveBytes osztály használható származtatott kulcs létrehozásához egy alapkulcsból és más paraméterekből. A jelszóalapú kulcs származtatási függvényben az alapkulcs egy jelszó, a többi paraméter pedig egy sóérték és egy iterációs szám.
További információ a PBKDF2-ről: "PKCS #5: Password-Based Titkosítási specifikáció 2.0-s verziója" című RFC 2898-at. A részletekért tekintse meg az 5.2.,"PBKDF2" szakaszt.
Important
Soha ne kódjon jelszót a forráskódon belül. A kemény kóddal kódolt jelszavak a Ildasm.exe (IL Disassembler) használatával, hexadecimális szerkesztő használatával, vagy egyszerűen a szerelvény megnyitásával kérhetők le egy szövegszerkesztőben, például Notepad.exe.
Lásd még
A következőre érvényes:
Rfc2898DeriveBytes(Byte[], Byte[], Int32)
Inicializálja az Rfc2898DeriveBytes osztály új példányát jelszó, só és iterációk számával a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(cli::array <System::Byte> ^ password, cli::array <System::Byte> ^ salt, int iterations);
public Rfc2898DeriveBytes(byte[] password, byte[] salt, int iterations);
new System.Security.Cryptography.Rfc2898DeriveBytes : byte[] * byte[] * int -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As Byte(), salt As Byte(), iterations As Integer)
Paraméterek
- password
- Byte[]
A kulcs származtatásához használt jelszó.
- salt
- Byte[]
A kulcs levezetéséhez használt kulcssó.
- iterations
- Int32
A művelet iterációinak száma.
Kivételek
A megadott sóméret kisebb, mint 8 bájt, vagy az iterációk száma kisebb, mint 1.
A jelszó vagy a só.null
Megjegyzések
A sóméretnek legalább 8 bájtnak kell lennie, és az iterációk számának nullánál nagyobbnak kell lennie. Az iterációk minimális ajánlott száma 1000.
Az RFC 2898 egy kulcs- és inicializálási vektor (IV) jelszóból és sóból történő létrehozására szolgáló módszereket tartalmaz. A PBKDF2 jelszóalapú kulcslevezetési függvény használatával olyan pszeudo-véletlenszerű függvény használatával származtathatja a kulcsokat, amelyek gyakorlatilag korlátlan hosszúságú kulcsokat hoznak létre. Az Rfc2898DeriveBytes osztály használható származtatott kulcs létrehozásához egy alapkulcsból és más paraméterekből. A jelszóalapú kulcs származtatási függvényben az alapkulcs egy jelszó, a többi paraméter pedig egy sóérték és egy iterációs szám.
További információ a PBKDF2-ről: "PKCS #5: Password-Based Titkosítási specifikáció 2.0-s verziója" című RFC 2898-at. A részletekért tekintse meg az 5.2.,"PBKDF2" szakaszt.
Important
Soha ne kódjon jelszót a forráskódon belül. A kemény kóddal kódolt jelszavak a Ildasm.exe (IL Disassembler) használatával, hexadecimális szerkesztő használatával, vagy egyszerűen a szerelvény megnyitásával kérhetők le egy szövegszerkesztőben, például Notepad.exe.
A következőre érvényes:
Rfc2898DeriveBytes(String, Byte[], Int32)
Inicializálja az Rfc2898DeriveBytes osztály új példányát jelszó, só és iterációk számával a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(System::String ^ password, cli::array <System::Byte> ^ salt, int iterations);
public Rfc2898DeriveBytes(string password, byte[] salt, int iterations);
new System.Security.Cryptography.Rfc2898DeriveBytes : string * byte[] * int -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As String, salt As Byte(), iterations As Integer)
Paraméterek
- password
- String
A kulcs származtatásához használt jelszó.
- salt
- Byte[]
A kulcs levezetéséhez használt kulcssó.
- iterations
- Int32
A művelet iterációinak száma.
Kivételek
A megadott sóméret kisebb, mint 8 bájt, vagy az iterációk száma kisebb, mint 1.
A jelszó vagy a só.null
Példák
Az alábbi példakód az Rfc2898DeriveBytes osztály használatával hoz létre két azonos kulcsot az Aes osztályhoz. Ezután titkosít és visszafejt bizonyos adatokat a kulcsok használatával.
using System;
using System.IO;
using System.Text;
using System.Security.Cryptography;
public class rfc2898test
{
// Generate a key k1 with password pwd1 and salt salt1.
// Generate a key k2 with password pwd1 and salt salt1.
// Encrypt data1 with key k1 using symmetric encryption, creating edata1.
// Decrypt edata1 with key k2 using symmetric decryption, creating data2.
// data2 should equal data1.
private const string usageText = "Usage: RFC2898 <password>\nYou must specify the password for encryption.\n";
public static void Main(string[] passwordargs)
{
//If no file name is specified, write usage text.
if (passwordargs.Length == 0)
{
Console.WriteLine(usageText);
}
else
{
string pwd1 = passwordargs[0];
// Create a byte array to hold the random value.
byte[] salt1 = new byte[8];
using (RandomNumberGenerator rng = RandomNumberGenerator.Create())
{
// Fill the array with a random value.
rng.GetBytes(salt1);
}
//data1 can be a string or contents of a file.
string data1 = "Some test data";
//The default iteration count is 1000 so the two methods use the same iteration count.
int myIterations = 1000;
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);
encrypt.Write(utfD1, 0, utfD1.Length);
encrypt.FlushFinalBlock();
encrypt.Close();
byte[] edata1 = encryptionStream.ToArray();
k1.Reset();
// Try to decrypt, thus showing it can be round-tripped.
Aes decAlg = Aes.Create();
decAlg.Key = k2.GetBytes(16);
decAlg.IV = encAlg.IV;
MemoryStream decryptionStreamBacking = new MemoryStream();
CryptoStream decrypt = new CryptoStream(
decryptionStreamBacking, decAlg.CreateDecryptor(), CryptoStreamMode.Write);
decrypt.Write(edata1, 0, edata1.Length);
decrypt.Flush();
decrypt.Close();
k2.Reset();
string data2 = new UTF8Encoding(false).GetString(
decryptionStreamBacking.ToArray());
if (!data1.Equals(data2))
{
Console.WriteLine("Error: The two values are not equal.");
}
else
{
Console.WriteLine("The two values are equal.");
Console.WriteLine("k1 iterations: {0}", k1.IterationCount);
Console.WriteLine("k2 iterations: {0}", k2.IterationCount);
}
}
catch (Exception e)
{
Console.WriteLine("Error: {0}", e);
}
}
}
}
Imports System.IO
Imports System.Text
Imports System.Security.Cryptography
Public Class rfc2898test
' Generate a key k1 with password pwd1 and salt salt1.
' Generate a key k2 with password pwd1 and salt salt1.
' Encrypt data1 with key k1 using symmetric encryption, creating edata1.
' Decrypt edata1 with key k2 using symmetric decryption, creating data2.
' data2 should equal data1.
Private Const usageText As String = "Usage: RFC2898 <password>" + vbLf + "You must specify the password for encryption." + vbLf
Public Shared Sub Main(ByVal passwordargs() As String)
'If no file name is specified, write usage text.
If passwordargs.Length = 0 Then
Console.WriteLine(usageText)
Else
Dim pwd1 As String = passwordargs(0)
Dim salt1(8) As Byte
Using rng As RandomNumberGenerator = RandomNumberGenerator.Create()
rng.GetBytes(salt1)
End Using
'data1 can be a string or contents of a file.
Dim data1 As String = "Some test data"
'The default iteration count is 1000 so the two methods use the same iteration count.
Dim myIterations As Integer = 1000
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)
encrypt.Write(utfD1, 0, utfD1.Length)
encrypt.FlushFinalBlock()
encrypt.Close()
Dim edata1 As Byte() = encryptionStream.ToArray()
k1.Reset()
' Try to decrypt, thus showing it can be round-tripped.
Dim decAlg As Aes = Aes.Create()
decAlg.Key = k2.GetBytes(16)
decAlg.IV = encAlg.IV
Dim decryptionStreamBacking As New MemoryStream()
Dim decrypt As New CryptoStream(decryptionStreamBacking, decAlg.CreateDecryptor(), CryptoStreamMode.Write)
decrypt.Write(edata1, 0, edata1.Length)
decrypt.Flush()
decrypt.Close()
k2.Reset()
Dim data2 As String = New UTF8Encoding(False).GetString(decryptionStreamBacking.ToArray())
If Not data1.Equals(data2) Then
Console.WriteLine("Error: The two values are not equal.")
Else
Console.WriteLine("The two values are equal.")
Console.WriteLine("k1 iterations: {0}", k1.IterationCount)
Console.WriteLine("k2 iterations: {0}", k2.IterationCount)
End If
Catch e As Exception
Console.WriteLine("Error: ", e)
End Try
End If
End Sub
End Class
Megjegyzések
A sóméretnek legalább 8 bájtnak kell lennie, és az iterációk számának nullánál nagyobbnak kell lennie. Az iterációk minimális ajánlott száma 1000.
Az RFC 2898 egy kulcs- és inicializálási vektor (IV) jelszóból és sóból történő létrehozására szolgáló módszereket tartalmaz. A PBKDF2 jelszóalapú kulcslevezetési függvény használatával olyan pszeudo-véletlenszerű függvény használatával származtathatja a kulcsokat, amelyek gyakorlatilag korlátlan hosszúságú kulcsokat hoznak létre. Az Rfc2898DeriveBytes osztály használható származtatott kulcs létrehozásához egy alapkulcsból és más paraméterekből. A jelszóalapú kulcs származtatási függvényben az alapkulcs egy jelszó, a többi paraméter pedig egy sóérték és egy iterációs szám.
További információ a PBKDF2-ről: "PKCS #5: Password-Based Titkosítási specifikáció 2.0-s verziója" című RFC 2898-at. A részletekért tekintse meg az 5.2.,"PBKDF2" szakaszt.
Important
Soha ne kódjon jelszót a forráskódon belül. A kemény kóddal kódolt jelszavak a Ildasm.exe (IL Disassembler) használatával, hexadecimális szerkesztő használatával, vagy egyszerűen a szerelvény megnyitásával kérhetők le egy szövegszerkesztőben, például Notepad.exe.
Lásd még
A következőre érvényes:
Rfc2898DeriveBytes(String, Int32, Int32)
Az osztály új példányát Rfc2898DeriveBytes inicializálja jelszó, sóméret és iterációk számával a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(System::String ^ password, int saltSize, int iterations);
public Rfc2898DeriveBytes(string password, int saltSize, int iterations);
new System.Security.Cryptography.Rfc2898DeriveBytes : string * int * int -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As String, saltSize As Integer, iterations As Integer)
Paraméterek
- password
- String
A kulcs származtatásához használt jelszó.
- saltSize
- Int32
Annak a véletlenszerű sónak a mérete, amelyet az osztálynak létre szeretne hozni.
- iterations
- Int32
A művelet iterációinak száma.
Kivételek
A megadott sóméret kisebb, mint 8 bájt, vagy az iterációk száma kisebb, mint 1.
A jelszó vagy a só.null
iterations tartományon kívül esik. Ehhez a paraméterhez nem negatív szám szükséges.
Megjegyzések
A sóméretnek legalább 8 bájtnak kell lennie, és az iterációk számának nullánál nagyobbnak kell lennie. Az iterációk minimális ajánlott száma 1000.
Az RFC 2898 egy kulcs- és inicializálási vektor (IV) jelszóból és sóból történő létrehozására szolgáló módszereket tartalmaz. A PBKDF2 jelszóalapú kulcslevezetési függvény használatával olyan pszeudo-véletlenszerű függvény használatával származtathatja a kulcsokat, amelyek gyakorlatilag korlátlan hosszúságú kulcsokat hoznak létre. Az Rfc2898DeriveBytes osztály használható származtatott kulcs létrehozásához egy alapkulcsból és más paraméterekből. A jelszóalapú kulcs származtatási függvényben az alapkulcs egy jelszó, a többi paraméter pedig egy sóérték és egy iterációs szám.
További információ a PBKDF2-ről: "PKCS #5: Password-Based Titkosítási specifikáció 2.0-s verziója" című RFC 2898-at. A részletekért tekintse meg az 5.2.,"PBKDF2" szakaszt.
Important
Soha ne kódjon jelszót a forráskódon belül. A kemény kóddal kódolt jelszavak a Ildasm.exe (IL Disassembler) használatával, hexadecimális szerkesztő használatával, vagy egyszerűen a szerelvény megnyitásával kérhetők le egy szövegszerkesztőben, például Notepad.exe.
Lásd még
A következőre érvényes:
Rfc2898DeriveBytes(Byte[], Byte[], Int32, HashAlgorithmName)
Inicializálja az osztály új példányát a Rfc2898DeriveBytes megadott jelszóval, sóval, iterációk számával és a kivonatoló algoritmus nevével a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(cli::array <System::Byte> ^ password, cli::array <System::Byte> ^ salt, int iterations, System::Security::Cryptography::HashAlgorithmName hashAlgorithm);
public Rfc2898DeriveBytes(byte[] password, byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
new System.Security.Cryptography.Rfc2898DeriveBytes : byte[] * byte[] * int * System.Security.Cryptography.HashAlgorithmName -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As Byte(), salt As Byte(), iterations As Integer, hashAlgorithm As HashAlgorithmName)
Paraméterek
- password
- Byte[]
A kulcs származtatásához használandó jelszó.
- salt
- Byte[]
A kulcs származtatásához használandó kulcssó.
- iterations
- Int32
A művelet iterációinak száma.
- hashAlgorithm
- HashAlgorithmName
A kulcs származtatásához használt kivonatoló algoritmus.
Kivételek
A kivonatoló algoritmus neve érvénytelen.
A következőre érvényes:
Rfc2898DeriveBytes(String, Byte[], Int32, HashAlgorithmName)
Inicializálja az osztály új példányát a Rfc2898DeriveBytes megadott jelszóval, sóval, iterációk számával és a kivonatoló algoritmus nevével a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(System::String ^ password, cli::array <System::Byte> ^ salt, int iterations, System::Security::Cryptography::HashAlgorithmName hashAlgorithm);
public Rfc2898DeriveBytes(string password, byte[] salt, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
new System.Security.Cryptography.Rfc2898DeriveBytes : string * byte[] * int * System.Security.Cryptography.HashAlgorithmName -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As String, salt As Byte(), iterations As Integer, hashAlgorithm As HashAlgorithmName)
Paraméterek
- password
- String
A kulcs származtatásához használandó jelszó.
- salt
- Byte[]
A kulcs származtatásához használandó kulcssó.
- iterations
- Int32
A művelet iterációinak száma.
- hashAlgorithm
- HashAlgorithmName
A kulcs származtatásához használt kivonatoló algoritmus.
Kivételek
A kivonatoló algoritmus neve érvénytelen.
A következőre érvényes:
Rfc2898DeriveBytes(String, Int32, Int32, HashAlgorithmName)
Inicializálja az osztály új példányát a Rfc2898DeriveBytes megadott jelszó, sóméret, iterációk száma és a kivonatoló algoritmus nevének használatával a kulcs levezetéséhez.
public:
Rfc2898DeriveBytes(System::String ^ password, int saltSize, int iterations, System::Security::Cryptography::HashAlgorithmName hashAlgorithm);
public Rfc2898DeriveBytes(string password, int saltSize, int iterations, System.Security.Cryptography.HashAlgorithmName hashAlgorithm);
new System.Security.Cryptography.Rfc2898DeriveBytes : string * int * int * System.Security.Cryptography.HashAlgorithmName -> System.Security.Cryptography.Rfc2898DeriveBytes
Public Sub New (password As String, saltSize As Integer, iterations As Integer, hashAlgorithm As HashAlgorithmName)
Paraméterek
- password
- String
A kulcs származtatásához használandó jelszó.
- saltSize
- Int32
Annak a véletlenszerű sónak a mérete, amelyet az osztálynak létre szeretne hozni.
- iterations
- Int32
A művelet iterációinak száma.
- hashAlgorithm
- HashAlgorithmName
A kulcs származtatásához használt kivonatoló algoritmus.
Kivételek
saltSize kisebb, mint nulla.
A kivonatoló algoritmus neve érvénytelen.