Compartilhar via


DESCryptoServiceProvider Classe

Definição

Cuidado

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

Define um objeto wrapper para acessar a versão do CSP (provedor de serviços de criptografia) do algoritmo DES (Padrão de Criptografia de Dados). Essa classe não pode ser herdada.

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
Herança
DESCryptoServiceProvider
Atributos

Exemplos

O exemplo de código a seguir usa DESCryptoServiceProvider (uma implementação de DES) com a chave especificada (Key) e o vetor de inicialização (IV) para criptografar um arquivo especificado por inName. Em seguida, ele gera o resultado criptografado para o arquivo especificado por 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

A descriptografia pode ser tratada da mesma maneira; use CreateDecryptor em vez de CreateEncryptor. A mesma chave (Key) e o vetor de inicialização (IV) usados para criptografar o arquivo devem ser usados para descriptografá-lo.

Comentários

Esse algoritmo dá suporte a um comprimento de chave de 64 bits.

Importante

Um algoritmo de criptografia simétrica mais recente, AES (Advanced Encryption Standard), está disponível. Considere usar a Aes classe em vez da DES classe . Use DES apenas para compatibilidade com aplicativos e dados herdados.

Construtores

DESCryptoServiceProvider()
Obsoleto.

Inicializa uma nova instância da classe DESCryptoServiceProvider.

Campos

BlockSizeValue
Obsoleto.

Representa o tamanho do bloco, em bits, da operação criptográfica.

(Herdado de SymmetricAlgorithm)
FeedbackSizeValue
Obsoleto.

Representa o tamanho dos comentários, em bits, da operação de criptografia.

(Herdado de SymmetricAlgorithm)
IVValue
Obsoleto.

Representa o vetor de inicialização (IV) do algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
KeySizeValue
Obsoleto.

Representa o tamanho, em bits, da chave secreta usada pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
KeyValue
Obsoleto.

Representa a chave secreta para o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalBlockSizesValue
Obsoleto.

Especifica os tamanhos de bloco, em bits, que têm suporte pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalKeySizesValue
Obsoleto.

Especifica os tamanhos de chave, em bits, que têm suporte pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
ModeValue
Obsoleto.

Representa o modo de criptografia usado no algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
PaddingValue
Obsoleto.

Representa o modo de preenchimento usado no algoritmo simétrico.

(Herdado de SymmetricAlgorithm)

Propriedades

BlockSize
Obsoleto.

Obtém ou define o tamanho do bloco, em bits, da operação de criptografia.

(Herdado de SymmetricAlgorithm)
FeedbackSize
Obsoleto.

Obtém ou define o tamanho dos comentários, em bits, da operação de criptografia para os modos de codificação CFB (Comentário de Codificação) e OFB (Comentário de Saída).

(Herdado de SymmetricAlgorithm)
IV
Obsoleto.

Obtém ou define o vetor de inicialização (IV) para o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
Key
Obsoleto.

Obtém ou define a chave secreta para o algoritmo DES (padrão de criptografia de dados).

(Herdado de DES)
KeySize
Obsoleto.

Obtém ou define o tamanho, em bits, da chave secreta usada pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalBlockSizes
Obsoleto.

Obtém os tamanhos de bloco, em bits, que tem suporte com o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalKeySizes
Obsoleto.

Obtém os tamanhos de chave, em bits, que têm suporte pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
Mode
Obsoleto.

Obtém ou define o modo de operação do algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
Padding
Obsoleto.

Obtém ou define o modo de preenchimento usado no algoritmo simétrico.

(Herdado de SymmetricAlgorithm)

Métodos

Clear()
Obsoleto.

Libera todos os recursos usados pela classe SymmetricAlgorithm.

(Herdado de SymmetricAlgorithm)
CreateDecryptor()
Obsoleto.

Cria um objeto descriptografador simétrico com a propriedade Key atual e o vetor de inicialização (IV).

CreateDecryptor()
Obsoleto.

Cria um objeto descriptografador simétrico com a propriedade Key atual e o vetor de inicialização (IV).

(Herdado de SymmetricAlgorithm)
CreateDecryptor(Byte[], Byte[])
Obsoleto.

Cria um objeto decriptografador no Data Encryption Standard simétrico (DES) com a chave (Key) e o vetor de inicialização (IV) especificados.

CreateEncryptor()
Obsoleto.

Cria um objeto criptografador simétrico com a propriedade Key atual e o vetor de inicialização (IV).

CreateEncryptor()
Obsoleto.

Cria um objeto criptografador simétrico com a propriedade Key atual e o vetor de inicialização (IV).

(Herdado de SymmetricAlgorithm)
CreateEncryptor(Byte[], Byte[])
Obsoleto.

Cria um objeto criptografador em DES (padrão de criptografia de dados) simétrico (DES) com a chave (Key) e o vetor de inicialização (IV) especificados.

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

Descriptografa dados usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsoleto.

Descriptografa dados usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleto.

Descriptografa dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
DecryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsoleto.

Descriptografa dados usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsoleto.

Descriptografa dados usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Descriptografa os dados no buffer especificado, usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
DecryptEcb(Byte[], PaddingMode)
Obsoleto.

Descriptografa dados usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsoleto.

Descriptografa dados usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleto.

Descriptografa dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
Dispose()
Obsoleto.

Libera todos os recursos usados pela instância atual da classe SymmetricAlgorithm.

(Herdado de SymmetricAlgorithm)
Dispose(Boolean)
Obsoleto.

Libera os recursos não gerenciados usados pelo SymmetricAlgorithm e opcionalmente libera os recursos gerenciados.

(Herdado de SymmetricAlgorithm)
EncryptCbc(Byte[], Byte[], PaddingMode)
Obsoleto.

Criptografa dados usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode)
Obsoleto.

Criptografa dados usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleto.

Criptografa dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
EncryptCfb(Byte[], Byte[], PaddingMode, Int32)
Obsoleto.

Criptografa dados usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32)
Obsoleto.

Criptografa dados usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Criptografa dados no buffer especificado, usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
EncryptEcb(Byte[], PaddingMode)
Obsoleto.

Criptografa dados usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode)
Obsoleto.

Criptografa dados usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode)
Obsoleto.

Criptografa dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
Equals(Object)
Obsoleto.

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GenerateIV()
Obsoleto.

Gera um vetor de inicialização aleatório (IV) a ser usado para o algoritmo.

GenerateKey()
Obsoleto.

Gera uma chave aleatória (Key) a ser usadas para o algoritmo.

GetCiphertextLengthCbc(Int32, PaddingMode)
Obsoleto.

Obtém o comprimento de um texto cifrado com um determinado modo de preenchimento e comprimento de texto sem formatação no modo CBC.

(Herdado de SymmetricAlgorithm)
GetCiphertextLengthCfb(Int32, PaddingMode, Int32)
Obsoleto.

Obtém o comprimento de um texto cifrado com um determinado modo de preenchimento e comprimento de texto sem formatação no modo CFB.

(Herdado de SymmetricAlgorithm)
GetCiphertextLengthEcb(Int32, PaddingMode)
Obsoleto.

Obtém o comprimento de um texto cifrado com um determinado modo de preenchimento e comprimento de texto sem formatação no modo ECB.

(Herdado de SymmetricAlgorithm)
GetHashCode()
Obsoleto.

Serve como a função de hash padrão.

(Herdado de Object)
GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()
Obsoleto.

Cria uma cópia superficial do Object atual.

(Herdado de Object)
ToString()
Obsoleto.

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsoleto.

Tenta descriptografar dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Quando substituído em uma classe derivada, tenta descriptografar dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsoleto.

Tenta descriptografar dados no buffer especificado, usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsoleto.

Quando substituído em uma classe derivada, tenta descriptografar dados no buffer especificado, usando o modo CFB com o modo de preenchimento especificado e o tamanho dos comentários.

(Herdado de SymmetricAlgorithm)
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Tenta descriptografar dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Quando substituído em uma classe derivada, tenta descriptografar dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode)
Obsoleto.

Tenta criptografar dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Quando substituído em uma classe derivada, tenta criptografar dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32)
Obsoleto.

Tenta criptografar dados no buffer especificado, usando o modo CFB com o modo de preenchimento e o tamanho dos comentários especificados.

(Herdado de SymmetricAlgorithm)
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32)
Obsoleto.

Quando substituído em uma classe derivada, tenta criptografar dados no buffer especificado, usando o modo CFB com o modo de preenchimento especificado e o tamanho dos comentários.

(Herdado de SymmetricAlgorithm)
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Tenta criptografar dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32)
Obsoleto.

Quando substituído em uma classe derivada, tenta criptografar dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado.

(Herdado de SymmetricAlgorithm)
ValidKeySize(Int32)
Obsoleto.

Determina se o tamanho da chave especificado é válido para o algoritmo atual.

(Herdado de SymmetricAlgorithm)

Implantações explícitas de interface

IDisposable.Dispose()

Esta API dá suporte à infraestrutura do produto e não deve ser usada diretamente do seu código.

Obsoleto.

Libera os recursos não gerenciados usados pelo SymmetricAlgorithm e opcionalmente libera os recursos gerenciados.

(Herdado de SymmetricAlgorithm)

Aplica-se a

Confira também