TripleDES Classe

Définition

Représente la classe de base des algorithmes 3DES (Triple Data Encryption Standard) dont toutes les implémentations de TripleDES doivent dériver.

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
Héritage
Dérivé
Attributs

Exemples

L’exemple de méthode de code suivant utilise TripleDESCryptoServiceProvider avec la clé spécifiée (Key) et le vecteur d’initialisation (IV) pour chiffrer un fichier spécifié par inName. Il génère ensuite le résultat chiffré dans le fichier spécifié par 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 au lieu de CreateEncryptor. La clé (Key) et le même vecteur d’initialisation (IV) utilisés pour chiffrer le fichier doivent être utilisés pour le déchiffrer.

Remarques

TripleDES utilise trois itérations successives de l’algorithme DES . Il peut utiliser deux ou trois touches 56 bits.

Notes

Un algorithme de chiffrement symétrique plus récent, Advanced Encryption Standard (AES), est disponible. Envisagez d’utiliser la Aes classe et ses classes dérivées à la place de la TripleDES classe . Utilisez TripleDES uniquement pour la compatibilité avec les applications et les données héritées.

Cet algorithme prend en charge les longueurs de clé comprises entre 128 bits et 192 bits par incréments de 64 bits.

Constructeurs

TripleDES()

Initialise une nouvelle instance de la classe TripleDES.

Champs

BlockSizeValue

Représente la taille de bloc, en bits, de l'opération de chiffrement.

(Hérité de SymmetricAlgorithm)
FeedbackSizeValue

Représente la taille des commentaires, en bits, de l'opération de chiffrement.

(Hérité de SymmetricAlgorithm)
IVValue

Représente le vecteur d'initialisation (IV) pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
KeySizeValue

Représente la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
KeyValue

Représente la clé secrète pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
LegalBlockSizesValue

Spécifie les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
LegalKeySizesValue

Spécifie les tailles de clé, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
ModeValue

Représente le mode de chiffrement utilisé dans l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
PaddingValue

Représente le mode de remplissage utilisé dans l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)

Propriétés

BlockSize

Obtient ou définit la taille de bloc, en bits, de l'opération de chiffrement.

(Hérité de SymmetricAlgorithm)
FeedbackSize

Obtient ou définit la taille des commentaires, en bits, de l’opération de chiffrement pour les modes de chiffrement CFB (Cipher Feedback) et OFB (Output Feedback).

(Hérité de SymmetricAlgorithm)
IV

Obtient ou définit le vecteur d'initialisation (IV) pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
Key

Obtient ou définit la clé secrète pour l’algorithme TripleDES.

KeySize

Obtient ou définit la taille, en bits, de la clé secrète utilisée par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
LegalBlockSizes

Obtient les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.

LegalBlockSizes

Obtient les tailles de bloc, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
LegalKeySizes

Obtient les tailles de clé, en octets, prises en charge par l'algorithme symétrique.

LegalKeySizes

Obtient les tailles de clé, en octets, prises en charge par l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
Mode

Obtient ou définit le mode de fonctionnement pour l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)
Padding

Obtient ou définit le mode de remplissage utilisé dans l'algorithme symétrique.

(Hérité de SymmetricAlgorithm)

Méthodes

Clear()

Libère toutes les ressources utilisées par la classe SymmetricAlgorithm.

(Hérité de SymmetricAlgorithm)
Create()

Crée une instance d’un objet de chiffrement pour exécuter l’algorithme TripleDES.

Create(String)
Obsolète.

Crée une instance d'un objet de chiffrement pour exécuter l'implémentation spécifiée de l'algorithme TripleDES.

CreateDecryptor()

Crée un objet déchiffreur symétrique avec la propriété Key et le vecteur d'initialisation (IV) actuels.

(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).

(Hérité de SymmetricAlgorithm)
CreateEncryptor()

Crée un objet chiffreur symétrique avec la propriété Key et le vecteur d'initialisation (IV) actuels.

(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).

(Hérité de SymmetricAlgorithm)
DecryptCbc(Byte[], Byte[], PaddingMode)

Déchiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

Déchiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Déchiffre les données dans la mémoire tampon spécifiée, en utilisant le mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)

Déchiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

Déchiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Déchiffre les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)

Déchiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)

Déchiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Déchiffre les données dans la mémoire tampon spécifiée, à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
Dispose()

Libère toutes les ressources utilisées par l'instance actuelle de la classe SymmetricAlgorithm.

(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.

(Hérité de SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)

Chiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)

Chiffre les données à l’aide du mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Chiffre les données dans la mémoire tampon spécifiée, en utilisant le mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)

Chiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)

Chiffre les données à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Chiffre les données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)

Chiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)

Chiffre les données à l’aide du mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)

Chiffre les données dans la mémoire tampon spécifiée, en utilisant le mode BCE avec le mode de remplissage spécifié.

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

Détermine si l'objet spécifié est égal à l'objet actuel.

(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.

(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.

(Hérité de SymmetricAlgorithm)
GetCiphertextLengthCbc(Int32, PaddingMode)

Obtient la longueur d’un texte chiffré avec un mode de remplissage donné et une longueur de texte en clair en mode CBC.

(Hérité de SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)

Obtient la longueur d’un texte chiffré avec un mode de remplissage donné et une longueur de texte en clair en mode BFC.

(Hérité de SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)

Obtient la longueur d’un texte chiffré avec un mode de remplissage donné et une longueur de texte en clair en mode BCE.

(Hérité de SymmetricAlgorithm)
GetHashCode()

Fait office de fonction de hachage par défaut.

(Hérité de Object)
GetType()

Obtient le Type de l'instance actuelle.

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

Détermine si la clé spécifiée est faible.

MemberwiseClone()

Crée une copie superficielle du Object actuel.

(Hérité de Object)
ToString()

Retourne une chaîne qui représente l'objet actuel.

(Hérité de Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

Tente de déchiffrer des données dans la mémoire tampon spécifiée, en utilisant le mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

En cas de substitution dans une classe dérivée, tente de déchiffrer les données dans la mémoire tampon spécifiée, en utilisant le mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

Tente de déchiffrer des données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

En cas de substitution dans une classe dérivée, tente de déchiffrer les données dans la mémoire tampon spécifiée, en utilisant le mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Tente de déchiffrer des données dans la mémoire tampon spécifiée, en utilisant le mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

En cas de substitution dans une classe dérivée, tente de déchiffrer les données dans la mémoire tampon spécifiée, en utilisant le mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)

Tente de chiffrer des données dans la mémoire tampon spécifiée, en utilisant le mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

En cas de substitution dans une classe dérivée, tente de chiffrer des données dans la mémoire tampon spécifiée, en utilisant le mode CBC avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)

Tente de chiffrer des données dans la mémoire tampon spécifiée, à l’aide du mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)

En cas de substitution dans une classe dérivée, tente de chiffrer des données dans la mémoire tampon spécifiée, en utilisant le mode CFB avec le mode de remplissage et la taille de commentaires spécifiés.

(Hérité de SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

Tente de chiffrer des données dans la mémoire tampon spécifiée, en utilisant le mode BCE avec le mode de remplissage spécifié.

(Hérité de SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)

En cas de substitution dans une classe dérivée, tente de chiffrer des données dans la mémoire tampon spécifiée, en utilisant le mode BCE avec le mode de remplissage spécifié.

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

Détermine si la taille de clé spécifiée est valide pour l'algorithme en cours.

(Hérité de SymmetricAlgorithm)

Implémentations d’interfaces explicites

IDisposable.Dispose()

Cette API prend en charge l'infrastructure du produit et n'est pas destinée à être utilisée directement à partir de votre code.

Libère les ressources non managées utilisées par SymmetricAlgorithm et libère éventuellement les ressources managées.

(Hérité de SymmetricAlgorithm)

S’applique à

Voir aussi