Udostępnij za pośrednictwem


TripleDES Klasa

Definicja

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)

Dotyczy

Zobacz też