TripleDES Classe

Définition

Représente la classe de base pour les algorithmes Triple Data Encryption Standard (norme de chiffrement des données triple) dont toutes les implémentations TripleDES doivent dériver.Represents the base class for Triple Data Encryption Standard algorithms from which all TripleDES implementations must derive.

public ref class TripleDES abstract : System::Security::Cryptography::SymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
type TripleDES = class
    inherit SymmetricAlgorithm
Public MustInherit Class TripleDES
Inherits SymmetricAlgorithm
Héritage
Dérivé
Attributs

Exemples

L’exemple de code suivant utilise TripleDESCryptoServiceProvider avec la clé spécifiée (Key) et le vecteur d’initialisationIV() pour chiffrer un fichier inNamespécifié par.The following code example method uses TripleDESCryptoServiceProvider with the specified key (Key) and initialization vector (IV) to encrypt a file specified by inName. Il génère ensuite le résultat chiffré dans le fichier spécifié par outName.It then outputs the encrypted result to the file specified by 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

Le déchiffrement peut être géré de la même façon ; Utilisez CreateDecryptor à la CreateEncryptorplace de.Decryption can be handled in the same way; use CreateDecryptor instead of CreateEncryptor. La même clé (Key) et le vecteur d’initialisationIV() utilisés pour chiffrer le fichier doivent être utilisés pour le déchiffrer.The same key (Key) and initialization vector (IV) used to encrypt the file must be used to decrypt it.

Remarques

TripleDESutilise trois itérations consécutives de DES l’algorithme.TripleDES uses three successive iterations of the DES algorithm. Il peut utiliser deux clés ou 3 56 bits.It can use either two or three 56-bit keys.

Notes

Un algorithme de chiffrement symétrique plus récent, Advanced Encryption Standard (AES), est disponible.A newer symmetric encryption algorithm, Advanced Encryption Standard (AES), is available. Envisagez Aes d’utiliser la classe et ses classes dérivées au lieu de la TripleDES classe.Consider using the Aes class and its derived classes instead of the TripleDES class. À TripleDES utiliser uniquement pour la compatibilité avec les applications et les données héritées.Use TripleDES only for compatibility with legacy applications and data.

Cet algorithme prend en charge des longueurs de clé de 128 bits à 192 bits par incréments de 64 bits.This algorithm supports key lengths from 128 bits to 192 bits in increments of 64 bits.

Constructeurs

TripleDES()

Initialise une nouvelle instance de la classe TripleDES.Initializes a new instance of the TripleDES class.

Champs

BlockSizeValue

Représente la taille de bloc, en bits, de l'opération de chiffrement.Represents the block size, in bits, of the cryptographic operation.

(Hérité de SymmetricAlgorithm)
FeedbackSizeValue

Représente la taille des commentaires, en bits, de l'opération de chiffrement.Represents the feedback size, in bits, of the cryptographic operation.

(Hérité de SymmetricAlgorithm)
IVValue

Représente le vecteur d'initialisation (IV) pour l'algorithme symétrique.Represents the initialization vector (IV) for the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
KeySizeValue

Représente la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique.Represents the size, in bits, of the secret key used by the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
KeyValue

Représente la clé secrète pour l'algorithme symétrique.Represents the secret key for the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
LegalBlockSizesValue

Spécifie les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.Specifies the block sizes, in bits, that are supported by the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
LegalKeySizesValue

Spécifie les tailles de clé, en octets, prises en charge par l'algorithme symétrique.Specifies the key sizes, in bits, that are supported by the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
ModeValue

Représente le mode de chiffrement utilisé dans l'algorithme symétrique.Represents the cipher mode used in the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
PaddingValue

Représente le mode de remplissage utilisé dans l'algorithme symétrique.Represents the padding mode used in the symmetric algorithm.

(Hérité de SymmetricAlgorithm)

Propriétés

BlockSize

Obtient ou définit la taille de bloc, en bits, de l'opération de chiffrement.Gets or sets the block size, in bits, of the cryptographic operation.

(Hérité de SymmetricAlgorithm)
FeedbackSize

Obtient ou définit la taille des commentaires, en bits, de l'opération de chiffrement.Gets or sets the feedback size, in bits, of the cryptographic operation.

(Hérité de SymmetricAlgorithm)
IV

Obtient ou définit le vecteur d'initialisation (IV) pour l'algorithme symétrique.Gets or sets the initialization vector (IV) for the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
Key

Obtient ou définit la clé secrète pour l'algorithme TripleDES.Gets or sets the secret key for the TripleDES algorithm.

KeySize

Obtient ou définit la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique.Gets or sets the size, in bits, of the secret key used by the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
LegalBlockSizes
LegalKeySizes
Mode

Obtient ou définit le mode de fonctionnement pour l'algorithme symétrique.Gets or sets the mode for operation of the symmetric algorithm.

(Hérité de SymmetricAlgorithm)
Padding

Obtient ou définit le mode de remplissage utilisé dans l'algorithme symétrique.Gets or sets the padding mode used in the symmetric algorithm.

(Hérité de SymmetricAlgorithm)

Méthodes

Clear()

Libère toutes les ressources utilisées par la classe SymmetricAlgorithm.Releases all resources used by the SymmetricAlgorithm class.

(Hérité de SymmetricAlgorithm)
Create()

Crée une instance d’un objet de chiffrement pour exécuter l’algorithme TripleDES.Creates an instance of a cryptographic object to perform the TripleDES algorithm.

Create(String)

Crée une instance d'un objet de chiffrement pour exécuter l'implémentation spécifiée de l'algorithme TripleDES.Creates an instance of a cryptographic object to perform the specified implementation of the TripleDES algorithm.

CreateDecryptor()

Crée un objet déchiffreur symétrique avec la propriété Key en cours et le vecteur d'initialisation (IV).Creates a symmetric decryptor object with the current Key property and initialization vector (IV).

(Hérité de SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])

En cas de substitution dans une classe dérivée, crée un objet déchiffreur symétrique avec la propriété Key spécifiée et le vecteur d'initialisation (IV).When overridden in a derived class, creates a symmetric decryptor object with the specified Key property and initialization vector (IV).

(Hérité de SymmetricAlgorithm)
CreateEncryptor()

Crée un objet chiffreur symétrique avec la propriété Key en cours et le vecteur d'initialisation (IV).Creates a symmetric encryptor object with the current Key property and initialization vector (IV).

(Hérité de SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])

En cas de substitution dans une classe dérivée, crée un objet chiffreur symétrique avec la propriété Key spécifiée et le vecteur d'initialisation (IV).When overridden in a derived class, creates a symmetric encryptor object with the specified Key property and initialization vector (IV).

(Hérité de SymmetricAlgorithm)
Dispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe SymmetricAlgorithm.Releases all resources used by the current instance of the SymmetricAlgorithm class.

(Hérité de SymmetricAlgorithm)
Dispose(Boolean)

Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Hérité de SymmetricAlgorithm)
Equals(Object)

Détermine si l'objet spécifié est identique à l'objet actuel.Determines whether the specified object is equal to the current object.

(Hérité de Object)
GenerateIV()

En cas de substitution dans une classe dérivée, génère un vecteur d'initialisation aléatoire (IV) à utiliser pour l'algorithme.When overridden in a derived class, generates a random initialization vector (IV) to use for the algorithm.

(Hérité de SymmetricAlgorithm)
GenerateKey()

En cas de substitution dans une classe dérivée, génère une clé aléatoire (Key) à utiliser pour l'algorithme.When overridden in a derived class, generates a random key (Key) to use for the algorithm.

(Hérité de SymmetricAlgorithm)
GetHashCode()

Fait office de fonction de hachage par défaut.Serves as the default hash function.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.Gets the Type of the current instance.

(Hérité de Object)
IsWeakKey(Byte[])

Détermine si la clé spécifiée est faible.Determines whether the specified key is weak.

MemberwiseClone()

Crée une copie superficielle de l'objet Object actuel.Creates a shallow copy of the current Object.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.Returns a string that represents the current object.

(Hérité de Object)
ValidKeySize(Int32)

Détermine si la taille de clé spécifiée est valide pour l'algorithme en cours.Determines whether the specified key size is valid for the current algorithm.

(Hérité de SymmetricAlgorithm)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées.Releases the unmanaged resources used by the SymmetricAlgorithm and optionally releases the managed resources.

(Hérité de SymmetricAlgorithm)

S’applique à

Voir aussi