TripleDES Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Reprezentuje klasę bazową dla algorytmów standardu Triple Data Encryption, z których muszą pochodzić wszystkie TripleDES implementacje.
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
- Dziedziczenie
- Pochodne
- Atrybuty
Przykłady
Poniższa przykładowa metoda kodu używa TripleDESCryptoServiceProvider z określonym kluczem (Key) i wektorem inicjowania (IV) do szyfrowania pliku określonego przez inName
. Następnie zwraca zaszyfrowany wynik do pliku określonego przez 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
Odszyfrowywanie może być obsługiwane w taki sam sposób; zamiast CreateEncryptor.CreateDecryptor Ten sam klucz (Key) i wektor inicjalizacji (IV) używany do szyfrowania pliku musi być używany do jego odszyfrowania.
Uwagi
TripleDES używa trzech kolejnych iteracji algorytmu DES . Może używać dwóch lub trzech kluczy 56-bitowych.
Uwaga
Dostępny jest nowszy algorytm szyfrowania symetrycznego Advanced Encryption Standard (AES). Rozważ użycie Aes klasy i jej klas pochodnych TripleDES zamiast klasy . Używaj TripleDES tylko w celu zachowania zgodności ze starszymi aplikacjami i danymi.
Ten algorytm obsługuje długości kluczy od 128 bitów do 192 bitów w przyrostach 64 bitów.
Konstruktory
TripleDES() |
Inicjuje nowe wystąpienie klasy TripleDES. |
Pola
BlockSizeValue |
Reprezentuje rozmiar bloku w bitach operacji kryptograficznych. (Odziedziczone po SymmetricAlgorithm) |
FeedbackSizeValue |
Reprezentuje rozmiar opinii w bitach operacji kryptograficznych. (Odziedziczone po SymmetricAlgorithm) |
IVValue |
Reprezentuje wektor inicjowania (IV) dla algorytmu symetrycznego. (Odziedziczone po SymmetricAlgorithm) |
KeySizeValue |
Reprezentuje rozmiar klucza tajnego używanego przez algorytm symetryczny w bitach. (Odziedziczone po SymmetricAlgorithm) |
KeyValue |
Reprezentuje klucz tajny algorytmu symetrycznego. (Odziedziczone po SymmetricAlgorithm) |
LegalBlockSizesValue |
Określa rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny. (Odziedziczone po SymmetricAlgorithm) |
LegalKeySizesValue |
Określa rozmiary kluczy w bitach, które są obsługiwane przez algorytm symetryczny. (Odziedziczone po SymmetricAlgorithm) |
ModeValue |
Reprezentuje tryb szyfrowania używany w algorytmie symetrycznym. (Odziedziczone po SymmetricAlgorithm) |
PaddingValue |
Reprezentuje tryb uzupełniania używany w algorytmie symetrycznym. (Odziedziczone po SymmetricAlgorithm) |
Właściwości
BlockSize |
Pobiera lub ustawia rozmiar bloku w bitach operacji kryptograficznych. (Odziedziczone po SymmetricAlgorithm) |
FeedbackSize |
Pobiera lub ustawia rozmiar opinii w bitach operacji kryptograficznych dla trybów szyfrowania opinii (CFB) i szyfrowania danych wyjściowych (OFB). (Odziedziczone po SymmetricAlgorithm) |
IV |
Pobiera lub ustawia wektor inicjowania (IV) dla algorytmu symetrycznego. (Odziedziczone po SymmetricAlgorithm) |
Key |
Pobiera lub ustawia klucz tajny dla algorytmu TripleDES . |
KeySize |
Pobiera lub ustawia rozmiar klucza tajnego używanego przez algorytm symetryczny w bitach. (Odziedziczone po SymmetricAlgorithm) |
LegalBlockSizes |
Pobiera rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny. |
LegalBlockSizes |
Pobiera rozmiary bloków w bitach, które są obsługiwane przez algorytm symetryczny. (Odziedziczone po SymmetricAlgorithm) |
LegalKeySizes |
Pobiera rozmiary kluczy w bitach, które są obsługiwane przez algorytm symetryczny. |
LegalKeySizes |
Pobiera rozmiary kluczy w bitach, które są obsługiwane przez algorytm symetryczny. (Odziedziczone po SymmetricAlgorithm) |
Mode |
Pobiera lub ustawia tryb działania algorytmu symetrycznego. (Odziedziczone po SymmetricAlgorithm) |
Padding |
Pobiera lub ustawia tryb uzupełniania używany w algorytmie symetrycznym. (Odziedziczone po SymmetricAlgorithm) |
Metody
Clear() |
Zwalnia wszystkie zasoby używane przez klasę SymmetricAlgorithm . (Odziedziczone po SymmetricAlgorithm) |
Create() |
Tworzy wystąpienie obiektu kryptograficznego w celu wykonania algorytmu TripleDES . |
Create(String) |
Przestarzałe.
Tworzy wystąpienie obiektu kryptograficznego w celu wykonania określonej implementacji algorytmu TripleDES . |
CreateDecryptor() |
Tworzy obiekt odszyfrowywania symetrycznego z bieżącą Key właściwością i wektorem inicjowania (IV). (Odziedziczone po SymmetricAlgorithm) |
CreateDecryptor(Byte[], Byte[]) |
Po zastąpieniu w klasie pochodnej tworzy obiekt odszyfrowywania symetrycznego z określoną Key właściwością i wektorem inicjowania (IV). (Odziedziczone po SymmetricAlgorithm) |
CreateEncryptor() |
Tworzy obiekt szyfrowania symetrycznego z bieżącą Key właściwością i wektorem inicjowania (IV). (Odziedziczone po SymmetricAlgorithm) |
CreateEncryptor(Byte[], Byte[]) |
Po zastąpieniu w klasie pochodnej tworzy obiekt szyfrowania symetrycznego z określoną Key właściwością i wektorem inicjowania (IV). (Odziedziczone po SymmetricAlgorithm) |
DecryptCbc(Byte[], Byte[], PaddingMode) |
Odszyfrowuje dane przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Odszyfrowuje dane przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Odszyfrowuje dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
DecryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Odszyfrowuje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Odszyfrowuje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Odszyfrowuje dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
DecryptEcb(Byte[], PaddingMode) |
Odszyfrowuje dane przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Odszyfrowuje dane przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Odszyfrowuje dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
Dispose() |
Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy SymmetricAlgorithm. (Odziedziczone po SymmetricAlgorithm) |
Dispose(Boolean) |
Zwalnia zasoby niezarządzane używane przez element SymmetricAlgorithm i opcjonalnie zwalnia zasoby zarządzane. (Odziedziczone po SymmetricAlgorithm) |
EncryptCbc(Byte[], Byte[], PaddingMode) |
Szyfruje dane przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Szyfruje dane przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Szyfruje dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
EncryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Szyfruje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Szyfruje dane przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Szyfruje dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
EncryptEcb(Byte[], PaddingMode) |
Szyfruje dane przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Szyfruje dane przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Szyfruje dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GenerateIV() |
Podczas zastępowania w klasie pochodnej generuje losowy wektor inicjowania (IV) do użycia dla algorytmu. (Odziedziczone po SymmetricAlgorithm) |
GenerateKey() |
Podczas zastępowania w klasie pochodnej generuje losowy klucz (Key) do użycia dla algorytmu. (Odziedziczone po SymmetricAlgorithm) |
GetCiphertextLengthCbc(Int32, PaddingMode) |
Pobiera długość szyfrowania tekstu z danym trybem wypełnienia i długością zwykłego tekstu w trybie CBC. (Odziedziczone po SymmetricAlgorithm) |
GetCiphertextLengthCfb(Int32, PaddingMode, Int32) |
Pobiera długość szyfrowania tekstu z danym trybem wypełnienia i długością zwykłego tekstu w trybie CFB. (Odziedziczone po SymmetricAlgorithm) |
GetCiphertextLengthEcb(Int32, PaddingMode) |
Pobiera długość szyfrowania tekstu z danym trybem wypełnienia i długością zwykłego tekstu w trybie EBC. (Odziedziczone po SymmetricAlgorithm) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
IsWeakKey(Byte[]) |
Określa, czy określony klucz jest słaby. |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Próbuje odszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Po zastąpieniu w klasie pochodnej program próbuje odszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Próbuje odszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Po zastąpieniu w klasie pochodnej próbuje odszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Próbuje odszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Podczas zastępowania w klasie pochodnej program próbuje odszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Po zastąpieniu w klasie pochodnej próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Próbuje zaszyfrować dane w określonym buforze przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Po zastąpieniu w klasie pochodnej próbuje zaszyfrować dane do określonego buforu przy użyciu trybu CFB z określonym trybem uzupełniania i rozmiarem opinii. (Odziedziczone po SymmetricAlgorithm) |
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Próbuje zaszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Po zastąpieniu w klasie pochodnej program próbuje zaszyfrować dane do określonego buforu przy użyciu trybu EBC z określonym trybem uzupełniania. (Odziedziczone po SymmetricAlgorithm) |
ValidKeySize(Int32) |
Określa, czy określony rozmiar klucza jest prawidłowy dla bieżącego algorytmu. (Odziedziczone po SymmetricAlgorithm) |
Jawne implementacje interfejsu
IDisposable.Dispose() |
Ten interfejs API obsługuje infrastrukturę produktu i nie jest przeznaczony do użycia bezpośrednio z poziomu kodu. Zwalnia zasoby niezarządzane używane przez element SymmetricAlgorithm i opcjonalnie zwalnia zasoby zarządzane. (Odziedziczone po SymmetricAlgorithm) |