TripleDES Třída
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í.
Představuje základní třídu pro algoritmy Triple Data Encryption Standard, ze kterých musí být odvozeny všechny TripleDES implementace.
public ref class TripleDES abstract : System::Security::Cryptography::SymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type TripleDES = class
inherit SymmetricAlgorithm
type TripleDES = class
inherit SymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type TripleDES = class
inherit SymmetricAlgorithm
Public MustInherit Class TripleDES
Inherits SymmetricAlgorithm
- Dědičnost
- Odvozené
- Atributy
Příklady
Následující ukázková metoda kódu používá TripleDESCryptoServiceProvider se zadaným klíčem (Key) a inicializačním vektorem (IV) k zašifrování souboru určeného parametrem inName
. Zašifrovaný výsledek pak vypíše do souboru určeného parametrem outName
.
void EncryptData( String^ inName, String^ outName, array<Byte>^tdesKey, array<Byte>^tdesIV )
{
//Create the file streams to handle the input and output files.
FileStream^ fin = gcnew FileStream( inName,FileMode::Open,FileAccess::Read );
FileStream^ fout = gcnew FileStream( outName,FileMode::OpenOrCreate,FileAccess::Write );
fout->SetLength( 0 );
//Create variables to help with read and write.
array<Byte>^bin = gcnew array<Byte>(100);
long rdlen = 0; //This is the total number of bytes written.
long totlen = (long)fin->Length; //This is the total length of the input file.
int len; //This is the number of bytes to be written at a time.
TripleDESCryptoServiceProvider^ tdes = gcnew TripleDESCryptoServiceProvider;
CryptoStream^ encStream = gcnew CryptoStream( fout,tdes->CreateEncryptor( tdesKey, tdesIV ),CryptoStreamMode::Write );
Console::WriteLine( "Encrypting..." );
//Read from the input file, then encrypt and write to the output file.
while ( rdlen < totlen )
{
len = fin->Read( bin, 0, 100 );
encStream->Write( bin, 0, len );
rdlen = rdlen + len;
Console::WriteLine( "{0} bytes processed", rdlen );
}
encStream->Close();
}
private static void EncryptData(string inName, string outName, byte[] tdesKey, byte[] tdesIV)
{
//Create the file streams to handle the input and output files.
FileStream fin = new FileStream(inName, FileMode.Open, FileAccess.Read);
FileStream fout = new FileStream(outName, FileMode.OpenOrCreate, FileAccess.Write);
fout.SetLength(0);
//Create variables to help with read and write.
byte[] bin = new byte[100]; //This is intermediate storage for the encryption.
long rdlen = 0; //This is the total number of bytes written.
long totlen = fin.Length; //This is the total length of the input file.
int len; //This is the number of bytes to be written at a time.
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
CryptoStream encStream = new CryptoStream(fout, tdes.CreateEncryptor(tdesKey, tdesIV), CryptoStreamMode.Write);
Console.WriteLine("Encrypting...");
//Read from the input file, then encrypt and write to the output file.
while(rdlen < totlen)
{
len = fin.Read(bin, 0, 100);
encStream.Write(bin, 0, len);
rdlen = rdlen + len;
Console.WriteLine("{0} bytes processed", rdlen);
}
encStream.Close();
}
Private Shared Sub EncryptData(inName As String, outName As String, _
tdesKey() As Byte, tdesIV() As Byte)
'Create the file streams to handle the input and output files.
Dim fin As New FileStream(inName, FileMode.Open, FileAccess.Read)
Dim fout As New FileStream(outName, FileMode.OpenOrCreate, _
FileAccess.Write)
fout.SetLength(0)
'Create variables to help with read and write.
Dim bin(100) As Byte 'This is intermediate storage for the encryption.
Dim rdlen As Long = 0 'This is the total number of bytes written.
Dim totlen As Long = fin.Length 'This is the total length of the input file.
Dim len As Integer 'This is the number of bytes to be written at a time.
Dim tdes As New TripleDESCryptoServiceProvider()
Dim encStream As New CryptoStream(fout, _
tdes.CreateEncryptor(tdesKey, tdesIV), CryptoStreamMode.Write)
Console.WriteLine("Encrypting...")
'Read from the input file, then encrypt and write to the output file.
While rdlen < totlen
len = fin.Read(bin, 0, 100)
encStream.Write(bin, 0, len)
rdlen = rdlen + len
Console.WriteLine("{0} bytes processed", rdlen)
End While
encStream.Close()
End Sub
Dešifrování lze zpracovat stejným způsobem; použijte CreateDecryptor místo .CreateEncryptor K jeho dešifrování se musí použít stejný klíč (Key) a inicializační vektor (IV) použitý k zašifrování souboru.
Poznámky
TripleDES používá tři po sobě jdoucí iterace DES algoritmu. Může používat dva nebo tři 56bitové klíče.
Poznámka
K dispozici je novější algoritmus symetrického šifrování, AES (Advanced Encryption Standard). Zvažte použití Aes třídy a jejích odvozených TripleDES tříd místo třídy . Používejte TripleDES jenom kvůli kompatibilitě se staršími aplikacemi a daty.
Tento algoritmus podporuje délky klíčů od 128 bitů do 192 bitů v přírůstcích po 64 bitech.
Konstruktory
TripleDES() |
Inicializuje novou instanci TripleDES třídy . |
Pole
BlockSizeValue |
Představuje velikost bloku kryptografické operace v bitech. (Zděděno od SymmetricAlgorithm) |
FeedbackSizeValue |
Představuje velikost zpětné vazby v bitech kryptografické operace. (Zděděno od SymmetricAlgorithm) |
IVValue |
Představuje inicializační vektor (IV) symetrického algoritmu. (Zděděno od SymmetricAlgorithm) |
KeySizeValue |
Představuje velikost tajného klíče používaného symetrickým algoritmem v bitech. (Zděděno od SymmetricAlgorithm) |
KeyValue |
Představuje tajný klíč symetrického algoritmu. (Zděděno od SymmetricAlgorithm) |
LegalBlockSizesValue |
Určuje velikosti bloků v bitech, které jsou podporovány symetrickým algoritmem. (Zděděno od SymmetricAlgorithm) |
LegalKeySizesValue |
Určuje velikosti klíčů v bitech, které jsou podporovány symetrickým algoritmem. (Zděděno od SymmetricAlgorithm) |
ModeValue |
Představuje režim šifrování použitý v symetrické algoritmu. (Zděděno od SymmetricAlgorithm) |
PaddingValue |
Představuje režim odsazení použitý v symetrické algoritmu. (Zděděno od SymmetricAlgorithm) |
Vlastnosti
BlockSize |
Získá nebo nastaví velikost bloku v bitech kryptografické operace. (Zděděno od SymmetricAlgorithm) |
FeedbackSize |
Získá nebo nastaví velikost zpětné vazby v bitech kryptografické operace pro režimy šifry Šifrová zpětná vazba (CFB) a Výstupní zpětná vazba (OFB). (Zděděno od SymmetricAlgorithm) |
IV |
Získá nebo nastaví inicializační vektor (IV) pro symetrický algoritmus. (Zděděno od SymmetricAlgorithm) |
Key |
Získá nebo nastaví tajný klíč pro TripleDES algoritmus. |
KeySize |
Získá nebo nastaví velikost tajného klíče používaného symetrickým algoritmem v bitech. (Zděděno od SymmetricAlgorithm) |
LegalBlockSizes |
Získá velikosti bloků v bitech, které jsou podporovány symetrickým algoritmem. |
LegalBlockSizes |
Získá velikosti bloků v bitech, které jsou podporovány symetrickým algoritmem. (Zděděno od SymmetricAlgorithm) |
LegalKeySizes |
Získá velikosti klíčů v bitech, které jsou podporovány symetrickým algoritmem. |
LegalKeySizes |
Získá velikosti klíčů v bitech, které jsou podporovány symetrickým algoritmem. (Zděděno od SymmetricAlgorithm) |
Mode |
Získá nebo nastaví režim pro provoz symetrického algoritmu. (Zděděno od SymmetricAlgorithm) |
Padding |
Získá nebo nastaví režim odsazení použitý v symetrický algoritmus. (Zděděno od SymmetricAlgorithm) |
Metody
Clear() |
Uvolní všechny prostředky používané SymmetricAlgorithm třídou . (Zděděno od SymmetricAlgorithm) |
Create() |
Vytvoří instanci kryptografického objektu k provedení TripleDES algoritmu. |
Create(String) |
Zastaralé.
Vytvoří instanci kryptografického objektu k provedení zadané implementace TripleDES algoritmu. |
CreateDecryptor() |
Vytvoří symetrický dešifrovací objekt s aktuální Key vlastností a inicializačním vektorem (IV). (Zděděno od SymmetricAlgorithm) |
CreateDecryptor(Byte[], Byte[]) |
Při přepsání v odvozené třídě vytvoří objekt symetrického dešifrovače se zadanou Key vlastností a inicializačním vektorem (IV). (Zděděno od SymmetricAlgorithm) |
CreateEncryptor() |
Vytvoří objekt symetrického encryptoru s aktuální Key vlastností a inicializačním vektorem (IV). (Zděděno od SymmetricAlgorithm) |
CreateEncryptor(Byte[], Byte[]) |
Při přepsání v odvozené třídě vytvoří objekt symetrického encryptoru se zadanou Key vlastností a inicializačním vektorem (IV). (Zděděno od SymmetricAlgorithm) |
DecryptCbc(Byte[], Byte[], PaddingMode) |
Dešifruje data pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Dešifruje data pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Dešifruje data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
DecryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Dešifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Dešifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Dešifruje data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
DecryptEcb(Byte[], PaddingMode) |
Dešifruje data pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Dešifruje data pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Dešifruje data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
Dispose() |
Uvolní všechny prostředky používané aktuální instancí SymmetricAlgorithm třídy . (Zděděno od SymmetricAlgorithm) |
Dispose(Boolean) |
Uvolní nespravované prostředky používané nástrojem SymmetricAlgorithm a volitelně uvolní spravované prostředky. (Zděděno od SymmetricAlgorithm) |
EncryptCbc(Byte[], Byte[], PaddingMode) |
Šifruje data pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Šifruje data pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Zašifruje data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
EncryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Šifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Šifruje data pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Šifruje data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
EncryptEcb(Byte[], PaddingMode) |
Šifruje data pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Šifruje data pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Šifruje data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GenerateIV() |
Při přepsání v odvozené třídě vygeneruje náhodný inicializační vektor (IV), který se použije pro algoritmus. (Zděděno od SymmetricAlgorithm) |
GenerateKey() |
Při přepsání v odvozené třídě vygeneruje náhodný klíč (Key), který se použije pro algoritmus. (Zděděno od SymmetricAlgorithm) |
GetCiphertextLengthCbc(Int32, PaddingMode) |
Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu CBC. (Zděděno od SymmetricAlgorithm) |
GetCiphertextLengthCfb(Int32, PaddingMode, Int32) |
Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu CFB. (Zděděno od SymmetricAlgorithm) |
GetCiphertextLengthEcb(Int32, PaddingMode) |
Získá délku šifrového textu s daným režimem odsazení a délkou prostého textu v režimu ECB. (Zděděno od SymmetricAlgorithm) |
GetHashCode() |
Slouží jako výchozí hashovací funkce. (Zděděno od Object) |
GetType() |
Type Získá z aktuální instance. (Zděděno od Object) |
IsWeakKey(Byte[]) |
Určuje, zda je zadaný klíč slabý. |
MemberwiseClone() |
Vytvoří mělkou kopii aktuálního Objectsouboru . (Zděděno od Object) |
ToString() |
Vrátí řetězec, který představuje aktuální objekt. (Zděděno od Object) |
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Při přepsání v odvozené třídě se nástroj pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Při přepsání v odvozené třídě se pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Pokusí se dešifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Při přepsání v odvozené třídě se nástroj pokusí dešifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Pokusí se šifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Při přepsání v odvozené třídě se nástroj pokusí šifrovat data do zadané vyrovnávací paměti pomocí režimu CBC se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Pokusí se zašifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Při přepsání v odvozené třídě se nástroj pokusí šifrovat data do zadané vyrovnávací paměti pomocí režimu CFB se zadaným režimem odsazení a velikostí zpětné vazby. (Zděděno od SymmetricAlgorithm) |
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Pokusí se šifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Při přepsání v odvozené třídě se nástroj pokusí zašifrovat data do zadané vyrovnávací paměti pomocí režimu ECB se zadaným režimem odsazení. (Zděděno od SymmetricAlgorithm) |
ValidKeySize(Int32) |
Určuje, zda je zadaná velikost klíče platná pro aktuální algoritmus. (Zděděno od SymmetricAlgorithm) |
Explicitní implementace rozhraní
IDisposable.Dispose() |
Toto rozhraní API podporuje produktovou infrastrukturu a není určené k použití přímo z uživatelského kódu. Uvolní nespravované prostředky používané nástrojem SymmetricAlgorithm a volitelně uvolní spravované prostředky. (Zděděno od SymmetricAlgorithm) |