Freigeben über


TripleDES Klasse

Definition

Stellt die Basisklasse für Triple-DES-Algorithmen dar, von der alle TripleDES-Implementierungen abgeleitet werden müssen.

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
Vererbung
Abgeleitet
Attribute

Beispiele

Die folgende Codebeispielmethode verwendet TripleDESCryptoServiceProvider mit dem angegebenen Schlüssel (Key) und dem angegebenen Initialisierungsvektor (IV), um eine durch inNameangegebene Datei zu verschlüsseln. Anschließend wird das verschlüsselte Ergebnis in die von outNameangegebene Datei ausgegeben.

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

Die Entschlüsselung kann auf die gleiche Weise gehandhabt werden; anstelle von CreateEncryptorverwendenCreateDecryptor. Für die Entschlüsselung der Datei muss derselbe Schlüssel (Key) und initialisierungsvektor (IV) verwendet werden.

Hinweise

TripleDES verwendet drei aufeinander folgende Iterationen des DES Algorithmus. Es kann entweder zwei oder drei 56-Bit-Schlüssel verwenden.

Hinweis

Ein neuerer symmetrischer Verschlüsselungsalgorithmus, Advanced Encryption Standard (AES), ist verfügbar. Erwägen Sie die Verwendung der Aes -Klasse und ihrer abgeleiteten Klassen anstelle der TripleDES -Klasse. Verwenden Sie TripleDES nur aus Kompatibilität mit Legacyanwendungen und -daten.

Dieser Algorithmus unterstützt Schlüssellängen von 128 Bit bis 192 Bit in Schritten von 64 Bits.

Konstruktoren

TripleDES()

Initialisiert eine neue Instanz der TripleDES-Klasse.

Felder

BlockSizeValue

Stellt die Blockgröße des kryptografischen Vorgangs in Bits dar.

(Geerbt von SymmetricAlgorithm)
FeedbackSizeValue

Stellt die Feedbackgröße des kryptografischen Vorgangs in Bits dar.

(Geerbt von SymmetricAlgorithm)
IVValue

Stellt den Initialisierungsvektor (IV) für den symmetrischen Algorithmus dar.

(Geerbt von SymmetricAlgorithm)
KeySizeValue

Stellt die Größe des vom symmetrischen Algorithmus verwendeten geheimen Schlüssels in Bits dar.

(Geerbt von SymmetricAlgorithm)
KeyValue

Stellt den geheimen Schlüssel für den symmetrischen Algorithmus dar.

(Geerbt von SymmetricAlgorithm)
LegalBlockSizesValue

Gibt die vom symmetrischen Algorithmus unterstützten Blockgrößen in Bits an.

(Geerbt von SymmetricAlgorithm)
LegalKeySizesValue

Gibt die vom symmetrischen Algorithmus unterstützten Schlüsselgrößen in Bits an.

(Geerbt von SymmetricAlgorithm)
ModeValue

Stellt den im symmetrischen Algorithmus verwendeten Verschlüsselungsmodus dar.

(Geerbt von SymmetricAlgorithm)
PaddingValue

Stellt den im symmetrischen Algorithmus verwendeten Füllzeichenmodus dar.

(Geerbt von SymmetricAlgorithm)

Eigenschaften

BlockSize

Ruft die Blockgröße des kryptografischen Vorgangs in Bits ab oder legt diese fest.

(Geerbt von SymmetricAlgorithm)
FeedbackSize

Ruft die Feedbackgröße des kryptografischen Vorgangs für den CFB-Modus (Cipher Feedback, Verschlüsselungsverfahren-Feedback) und den OFB-Modus (Output Feedback, Ausgabefeedback) in Bits ab oder legt diese fest.

(Geerbt von SymmetricAlgorithm)
IV

Ruft den Initialisierungsvektor (IV) für den symmetrischen Algorithmus ab oder legt diesen fest.

(Geerbt von SymmetricAlgorithm)
Key

Ruft den geheimen Schlüssel für den TripleDES-Algorithmus ab oder legt diesen fest.

KeySize

Ruft die Größe des geheimen Schlüssels für den symmetrischen Algorithmus in Bits ab oder legt diese fest.

(Geerbt von SymmetricAlgorithm)
LegalBlockSizes

Ruft die vom symmetrischen Algorithmus unterstützten Blockgrößen in Bits ab.

LegalBlockSizes

Ruft die vom symmetrischen Algorithmus unterstützten Blockgrößen in Bits ab.

(Geerbt von SymmetricAlgorithm)
LegalKeySizes

Ruft die vom symmetrischen Algorithmus unterstützten Schlüsselgrößen in Bits ab.

LegalKeySizes

Ruft die vom symmetrischen Algorithmus unterstützten Schlüsselgrößen in Bits ab.

(Geerbt von SymmetricAlgorithm)
Mode

Ruft den Modus für die Ausführung des symmetrischen Algorithmus ab oder legt diesen fest.

(Geerbt von SymmetricAlgorithm)
Padding

Ruft den im symmetrischen Algorithmus verwendeten Füllzeichenmodus ab oder legt diesen fest.

(Geerbt von SymmetricAlgorithm)

Methoden

Clear()

Gibt alle von der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei.

(Geerbt von SymmetricAlgorithm)
Create()

Erstellt eine Instanz eines Kryptografieobjekts, um den TripleDES-Algorithmus auszuführen.

Create(String)
Veraltet.

Erstellt eine Instanz eines Kryptografieobjekts, um die angegebene Implementierung des TripleDES-Algorithmus auszuführen.

CreateDecryptor()

Erstellt ein symmetrisches Entschlüsselungsobjekt mit der aktuellen Key-Eigenschaft und dem Initialisierungsvektor (IV).

(Geerbt von SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])

Erstellt beim Überschreiben in einer abgeleiteten Klasse ein symmetrisches Entschlüsselungsobjekt mit der angegebenen Key-Eigenschaft und dem angegebenen Initialisierungsvektor (IV).

(Geerbt von SymmetricAlgorithm)
CreateEncryptor()

Erstellt ein symmetrisches Verschlüsselungsobjekt mit der aktuellen Key-Eigenschaft und dem aktuellen Initialisierungsvektor (IV).

(Geerbt von SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])

Erstellt beim Überschreiben in einer abgeleiteten Klasse ein symmetrisches Verschlüsselungsobjekt mit der angegebenen Key-Eigenschaft und dem angegebenen Initialisierungsvektor (IV).

(Geerbt von SymmetricAlgorithm)
DecryptCbc(Byte[], Byte[], PaddingMode)

Entschlüsselt Daten im CBC-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

Entschlüsselt Daten im CBC-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Entschlüsselt Daten im angegebenen Puffer mithilfe des CBC-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)

Entschlüsselt Daten im CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße.

(Geerbt von SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

Entschlüsselt Daten im CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße.

(Geerbt von SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Entschlüsselt Daten im angegebenen Puffer mithilfe des CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße.

(Geerbt von SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)

Entschlüsselt Daten im ECB-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)

Entschlüsselt Daten im ECB-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Entschlüsselt Daten im angegebenen Puffer mithilfe des ECB-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
Dispose()

Gibt alle von der aktuellen Instanz der SymmetricAlgorithm-Klasse verwendeten Ressourcen frei.

(Geerbt von SymmetricAlgorithm)
Dispose(Boolean)

Gibt die von SymmetricAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

(Geerbt von SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)

Verschlüsselt Daten im CBC-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

Verschlüsselt Daten im CBC-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Verschlüsselt Daten im angegebenen Puffer mithilfe des CBC-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)

Verschlüsselt Daten im CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße.

(Geerbt von SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

Verschlüsselt Daten im CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße.

(Geerbt von SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Verschlüsselt Daten im angegebenen Puffer mithilfe des CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße.

(Geerbt von SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)

Verschlüsselt Daten im ECB-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)

Verschlüsselt Daten im ECB-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Verschlüsselt Daten im angegebenen Puffer mithilfe des ECB-Modus mit dem angegebenen Abstandsmodus.

(Geerbt von SymmetricAlgorithm)
Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GenerateIV()

Generiert beim Überschreiben in einer abgeleiteten Klasse einen zufälligen Initialisierungsvektor (IV) für den Algorithmus.

(Geerbt von SymmetricAlgorithm)
GenerateKey()

Generiert beim Überschreiben in einer abgeleiteten Klasse einen zufälligen Schlüssel (Key) für den Algorithmus.

(Geerbt von SymmetricAlgorithm)
GetCiphertextLengthCbc(Int32, PaddingMode)

Ruft die Länge eines Verschlüsselungstexts mit einem angegebenen Abstandsmodus und einer Klartextlänge im CBC-Modus ab.

(Geerbt von SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)

Ruft die Länge eines Chiffretexts mit einem angegebenen Abstandsmodus und einer Klartextlänge im CFB-Modus ab.

(Geerbt von SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)

Ruft die Länge eines Chiffretexts mit einem angegebenen Abstandsmodus und einer Klartextlänge im ECB-Modus ab.

(Geerbt von SymmetricAlgorithm)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
IsWeakKey(Byte[])

Bestimmt, ob der angegebene Schlüssel schwach ist.

MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

Versucht, Daten im angegebenen Puffer mithilfe des CBC-Modus mit dem angegebenen Abstandsmodus zu entschlüsseln.

(Geerbt von SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Versucht beim Überschreiben in einer abgeleiteten Klasse, Daten in den angegebenen Puffer zu entschlüsseln, wobei der CBC-Modus mit dem angegebenen Abstandsmodus verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

Versucht, Daten im angegebenen Puffer zu entschlüsseln, indem der CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

Versucht beim Überschreiben in einer abgeleiteten Klasse, Daten in den angegebenen Puffer zu entschlüsseln, wobei der CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Versucht, Daten im angegebenen Puffer zu entschlüsseln, wobei der ECB-Modus mit dem angegebenen Auffüllungsmodus verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Versucht beim Überschreiben in einer abgeleiteten Klasse, Daten im angegebenen Puffer zu entschlüsseln, wobei der ECB-Modus mit dem angegebenen Abstandsmodus verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

Versucht, Daten im angegebenen Puffer mithilfe des CBC-Modus mit dem angegebenen Auffüllmodus zu verschlüsseln.

(Geerbt von SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Versucht beim Überschreiben in einer abgeleiteten Klasse, Daten im angegebenen Puffer zu verschlüsseln, wobei der CBC-Modus mit dem angegebenen Abstandsmodus verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

Versucht, Daten im angegebenen Puffer zu verschlüsseln, indem der CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

Versucht beim Überschreiben in einer abgeleiteten Klasse, Daten im angegebenen Puffer zu verschlüsseln, wobei der CFB-Modus mit dem angegebenen Abstandsmodus und der angegebenen Feedbackgröße verwendet wird.

(Geerbt von SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Versucht, Daten im angegebenen Puffer mithilfe des ECB-Modus mit dem angegebenen Abstandsmodus zu verschlüsseln.

(Geerbt von SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Versucht beim Überschreiben in einer abgeleiteten Klasse, Daten im angegebenen Puffer zu verschlüsseln, wobei der ECB-Modus mit dem angegebenen Abstandsmodus verwendet wird.

(Geerbt von SymmetricAlgorithm)
ValidKeySize(Int32)

Bestimmt, ob die angegebene Schlüsselgröße für den aktuellen Algorithmus gültig ist.

(Geerbt von SymmetricAlgorithm)

Explizite Schnittstellenimplementierungen

IDisposable.Dispose()

Diese API unterstützt die Produktinfrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code gedacht.

Gibt die von SymmetricAlgorithm verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.

(Geerbt von SymmetricAlgorithm)

Gilt für:

Weitere Informationen