DESCryptoServiceProvider Classe

Definizione

Attenzione

Derived cryptographic types are obsolete. Use the Create method on the base type instead.

Definisce un oggetto wrapper per accedere alla versione CSP (Cryptographic Service Provider) dell'algoritmo DES (Data Encryption Standard). La classe non può essere ereditata.

public ref class DESCryptoServiceProvider sealed : System::Security::Cryptography::DES
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES
[System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")]
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES
type DESCryptoServiceProvider = class
    inherit DES
[<System.Obsolete("Derived cryptographic types are obsolete. Use the Create method on the base type instead.", DiagnosticId="SYSLIB0021", UrlFormat="https://aka.ms/dotnet-warnings/{0}")>]
type DESCryptoServiceProvider = class
    inherit DES
[<System.Runtime.InteropServices.ComVisible(true)>]
type DESCryptoServiceProvider = class
    inherit DES
Public NotInheritable Class DESCryptoServiceProvider
Inherits DES
Ereditarietà
DESCryptoServiceProvider
Attributi

Esempio

L'esempio di codice seguente usa DESCryptoServiceProvider (un'implementazione di ) con la chiave specificata () e il vettore di DESinizializzazione (KeyIV) per crittografare un file specificato da inName. Restituisce quindi il risultato crittografato al file specificato da outName.

void EncryptData( String^ inName, String^ outName, array<Byte>^desKey, array<Byte>^desIV )
{
   
   //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.

   DES^ des = gcnew DESCryptoServiceProvider;
   CryptoStream^ encStream = gcnew CryptoStream( fout,des->CreateEncryptor( desKey, desIV ),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();
   fout->Close();
   fin->Close();
}
private static void EncryptData(string inName, string outName, byte[] desKey, byte[] desIV)
 {
     //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.

     DES des = new DESCryptoServiceProvider();
     CryptoStream encStream = new CryptoStream(fout, des.CreateEncryptor(desKey, desIV), 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();
     fout.Close();
     fin.Close();
 }
Private Shared Sub EncryptData(inName As String, outName As String, _
desKey() As Byte, desIV() 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(4096) 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 'Total length of the input file.
    Dim len As Integer 'This is the number of bytes to be written at a time.
    Dim des As New DESCryptoServiceProvider()
    Dim encStream As New CryptoStream(fout, _
       des.CreateEncryptor(desKey, desIV), 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, 4096)
        encStream.Write(bin, 0, len)
        rdlen = Convert.ToInt32(rdlen + len / des.BlockSize * des.BlockSize)
        Console.WriteLine("Processed {0} bytes, {1} bytes total", len, _
           rdlen)
    End While
    
    encStream.Close()
End Sub

La decrittografia può essere gestita nello stesso modo; usare CreateDecryptor anziché CreateEncryptor. La stessa chiave () e il vettore di inizializzazione (KeyIV) usati per crittografare il file deve essere usato per decrittografarlo.

Commenti

Questo algoritmo supporta una lunghezza chiave di 64 bit.

Importante

È disponibile un algoritmo di crittografia simmetrica più recente, Advanced Encryption Standard (AES). Prendere in considerazione l'uso della Aes classe anziché della DES classe. Usare DES solo per la compatibilità con applicazioni e dati legacy.

Costruttori

DESCryptoServiceProvider()
Obsoleti.

Inizializza una nuova istanza della classe DESCryptoServiceProvider.

Campi

BlockSizeValue
Obsoleti.

Rappresenta la dimensione in bit del blocco dell'operazione di crittografia.

(Ereditato da SymmetricAlgorithm)
FeedbackSizeValue
Obsoleti.

Rappresenta la dimensione in bit della quantità di informazioni raccolte dell'operazione di crittografia.

(Ereditato da SymmetricAlgorithm)
IVValue
Obsoleti.

Rappresenta il vettore di inizializzazione IV per l'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
KeySizeValue
Obsoleti.

Rappresenta la dimensione in bit della chiave privata usata dall'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
KeyValue
Obsoleti.

Rappresenta la chiave privata per l'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
LegalBlockSizesValue
Obsoleti.

Specifica le dimensioni in bit dei blocchi supportate dall'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
LegalKeySizesValue
Obsoleti.

Specifica le dimensioni in bit delle chiavi supportate dall'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
ModeValue
Obsoleti.

Rappresenta la modalità di crittografia usata nell'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
PaddingValue
Obsoleti.

Rappresenta la modalità di riempimento usata nell'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)

Proprietà

BlockSize
Obsoleti.

Ottiene o imposta la dimensione in bit del blocco dell'operazione di crittografia.

(Ereditato da SymmetricAlgorithm)
FeedbackSize
Obsoleti.

Ottiene o imposta le dimensioni delle informazioni raccolte dell'operazione di crittografia per le modalità di crittografia CFB (Cipher Feedback) e OFB (Output Feedback).

(Ereditato da SymmetricAlgorithm)
IV
Obsoleti.

Ottiene o imposta il vettore di inizializzazione (IV) per l'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
Key
Obsoleti.

Ottiene o imposta la chiave privata per l'algoritmo Data Encryption Standard (DES).

(Ereditato da DES)
KeySize
Obsoleti.

Ottiene o imposta la dimensione in bit della chiave segreta utilizzata dall'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
LegalBlockSizes
Obsoleti.

Ottiene le dimensioni in bit dei blocchi supportate dall'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
LegalKeySizes
Obsoleti.

Ottiene le dimensioni in bit delle chiavi supportate dall'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
Mode
Obsoleti.

Ottiene o imposta la modalità di funzionamento dell'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)
Padding
Obsoleti.

Ottiene o imposta la modalità di riempimento usata nell'algoritmo simmetrico.

(Ereditato da SymmetricAlgorithm)

Metodi

Clear()
Obsoleti.

Rilascia tutte le risorse usate dalla classe SymmetricAlgorithm.

(Ereditato da SymmetricAlgorithm)
CreateDecryptor()
Obsoleti.

Crea un oggetto di decrittografia simmetrica con la proprietà Key corrente e il vettore di inizializzazione IV.

CreateDecryptor()
Obsoleti.

Crea un oggetto di decrittografia simmetrica con la proprietà Key corrente e il vettore di inizializzazione IV.

(Ereditato da SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])
Obsoleti.

Crea un oggetto di decrittografia DES (Data Encryption Standard) simmetrica con la chiave Key e il vettore di inizializzazione IV specificati.

CreateEncryptor()
Obsoleti.

Crea un oggetto di crittografia simmetrica con la proprietà Key corrente e il vettore di inizializzazione IV.

CreateEncryptor()
Obsoleti.

Crea un oggetto di crittografia simmetrica con la proprietà Key corrente e il vettore di inizializzazione IV.

(Ereditato da SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])
Obsoleti.

Crea un oggetto di crittografia DES (Data Encryption Standard) simmetrica con la chiave Key e il vettore di inizializzazione IV specificati.

DecryptCbc(Byte[], Byte[], PaddingMode)
Obsoleti.

Decrittografa i dati usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsoleti.

Decrittografa i dati usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleti.

Decrittografa i dati nel buffer specificato usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsoleti.

Decrittografa i dati usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsoleti.

Decrittografa i dati usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Decrittografa i dati nel buffer specificato, usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Obsoleti.

Decrittografa i dati usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsoleti.

Decrittografa i dati usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleti.

Decrittografa i dati nel buffer specificato usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
Dispose()
Obsoleti.

Rilascia tutte le risorse usate dall'istanza corrente della classe SymmetricAlgorithm.

(Ereditato da SymmetricAlgorithm)
Dispose(Boolean)
Obsoleti.

Rilascia le risorse non gestite usate da SymmetricAlgorithm e, facoltativamente, le risorse gestite.

(Ereditato da SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Obsoleti.

Crittografa i dati usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsoleti.

Crittografa i dati usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleti.

Crittografa i dati nel buffer specificato usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsoleti.

Crittografa i dati usando la modalità MDF con la modalità di riempimento e le dimensioni dei commenti e suggerimenti specificati.

(Ereditato da SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsoleti.

Crittografa i dati usando la modalità MDF con la modalità di riempimento e le dimensioni dei commenti e suggerimenti specificati.

(Ereditato da SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Crittografa i dati nel buffer specificato usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Obsoleti.

Crittografa i dati usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsoleti.

Crittografa i dati usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleti.

Crittografa i dati nel buffer specificato usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
Equals(Object)
Obsoleti.

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GenerateIV()
Obsoleti.

Genera un vettore di inizializzazione casuale IV da utilizzare per l'algoritmo.

GenerateKey()
Obsoleti.

Genera una chiave casuale Key da utilizzare per l'algoritmo.

GetCiphertextLengthCbc(Int32, PaddingMode)
Obsoleti.

Ottiene la lunghezza di un testo di crittografia con una determinata modalità di riempimento e lunghezza del testo non crittografato in modalità CBC.

(Ereditato da SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Obsoleti.

Ottiene la lunghezza di un testo di crittografia con una determinata modalità di riempimento e lunghezza del testo non crittografato in modalità TLS.

(Ereditato da SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Obsoleti.

Ottiene la lunghezza di un testo di crittografia con una determinata modalità di riempimento e lunghezza di testo non crittografato in modalità BCE.

(Ereditato da SymmetricAlgorithm)
GetHashCode()
Obsoleti.

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()
Obsoleti.

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()
Obsoleti.

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ToString()
Obsoleti.

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsoleti.

Tenta di decrittografare i dati nel buffer specificato usando la modalità CBC con la modalità spaziatura interna specificata.

(Ereditato da SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Quando sottoposto a override in una classe derivata, tenta di decrittografare i dati nel buffer specificato usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsoleti.

Tenta di decrittografare i dati nel buffer specificato, usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsoleti.

Quando sottoposto a override in una classe derivata, tenta di decrittografare i dati nel buffer specificato, usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Tenta di decrittografare i dati nel buffer specificato usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Quando sottoposto a override in una classe derivata, tenta di decrittografare i dati nel buffer specificato, usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsoleti.

Tenta di crittografare i dati nel buffer specificato usando la modalità CBC con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Quando sottoposto a override in una classe derivata, tenta di crittografare i dati nel buffer specificato usando la modalità CBC con la modalità spaziatura interna specificata.

(Ereditato da SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsoleti.

Tenta di crittografare i dati nel buffer specificato, usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsoleti.

Quando sottoposto a override in una classe derivata, tenta di crittografare i dati nel buffer specificato, usando la modalità MDF con la modalità di riempimento e le dimensioni del feedback specificate.

(Ereditato da SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Tenta di crittografare i dati nel buffer specificato usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleti.

Quando sottoposto a override in una classe derivata, tenta di crittografare i dati nel buffer specificato, usando la modalità BCE con la modalità di riempimento specificata.

(Ereditato da SymmetricAlgorithm)
ValidKeySize(Int32)
Obsoleti.

Determina se la dimensione specificata della chiave è valida per l'algoritmo corrente.

(Ereditato da SymmetricAlgorithm)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Questa API supporta l'infrastruttura del prodotto e non è previsto che venga usata direttamente dal codice.

Obsoleti.

Rilascia le risorse non gestite usate da SymmetricAlgorithm e, facoltativamente, le risorse gestite.

(Ereditato da SymmetricAlgorithm)

Si applica a

Vedi anche