DESCryptoServiceProvider Classe

Definição

Atenção

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

Define um objeto wrapper para aceder à versão do fornecedor de serviços criptográficos (CSP) do algoritmo Data Encryption Standard (DES). Esta classe não pode ser herdada.

public ref class DESCryptoServiceProvider sealed : 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
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.DES
[System.Runtime.InteropServices.ComVisible(true)]
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}")>]
type DESCryptoServiceProvider = class
    inherit DES
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 seguinte usa DESCryptoServiceProvider (uma implementação de DES) com a chave especificada (Key) e o vetor de inicialização (IV) para encriptar um ficheiro especificado por inName. De seguida, o resultado encriptado é enviado para o ficheiro especificado por outName.

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 desencriptação pode ser tratada da mesma forma; usar CreateDecryptor em vez de CreateEncryptor. A mesma chave (Key) e vetor de inicialização (IV) usados para encriptar o ficheiro devem ser usados para o desencriptar.

Observações

Este algoritmo suporta um comprimento de chave de 64 bits.

Importante

Está disponível um algoritmo de encriptação simétrica mais recente, Advanced Encryption Standard (AES). Considera usar a Aes classe em vez da turma DES . Use DES apenas para compatibilidade com aplicações e dados legados.

Construtores

Name Description
DESCryptoServiceProvider()
Obsoleto.

Inicializa uma nova instância da DESCryptoServiceProvider classe.

Campos

Name Description
BlockSizeValue
Obsoleto.

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

(Herdado de SymmetricAlgorithm)
FeedbackSizeValue
Obsoleto.

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

(Herdado de SymmetricAlgorithm)
IVValue
Obsoleto.

Representa o vetor de inicialização (IV) para o 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 dos blocos, em bits, suportados pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalKeySizesValue
Obsoleto.

Especifica os tamanhos de chave, em bits, suportados pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
ModeValue
Obsoleto.

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

(Herdado de SymmetricAlgorithm)
PaddingValue
Obsoleto.

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

(Herdado de SymmetricAlgorithm)

Propriedades

Name Description
BlockSize
Obsoleto.

Obtém ou define o tamanho do bloco, em bits, da operação criptográfica.

(Herdado de SymmetricAlgorithm)
FeedbackSize
Obsoleto.

Obtém ou define o tamanho do feedback, em bits, da operação criptográfica para os modos de cifra de Cifra Feedback (CFB) e Output Feedback (OFB).

(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 Data Encryption Standard (DES).

(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 dos blocos, em bits, suportados pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalKeySizes
Obsoleto.

Obtém os tamanhos das chaves, em bits, suportados 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 enchimento usado no algoritmo simétrico.

(Herdado de SymmetricAlgorithm)

Métodos

Name Description
Clear()
Obsoleto.

Liberta todos os recursos usados pela SymmetricAlgorithm turma.

(Herdado de SymmetricAlgorithm)
CreateDecryptor()
Obsoleto.

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

CreateDecryptor()
Obsoleto.

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

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

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

CreateEncryptor()
Obsoleto.

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

CreateEncryptor()
Obsoleto.

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

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

Cria um objeto encriptador Simétrico de Padrão de Encriptação de Dados (DES) com a chave especificada (Key) e vetor de inicialização (IV).

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

Descifra dados usando o modo CBC com o modo de enchimento especificado.

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

Descifra dados usando o modo CBC com o modo de enchimento especificado.

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

Descifra os dados para o buffer especificado, usando o modo CBC com o modo de enchimento especificado.

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

Descifra dados usando o modo CFB com o modo de enchimento especificado e o tamanho de feedback.

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

Descifra dados usando o modo CFB com o modo de enchimento especificado e o tamanho de feedback.

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

Descifra os dados no buffer especificado, usando o modo CFB com o modo de enchimento e o tamanho de feedback especificados.

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

Descifra os dados usando o modo ECB com o modo de enchimento especificado.

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

Descifra os dados usando o modo ECB com o modo de enchimento especificado.

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

Descifra os dados no buffer especificado, usando o modo ECB com o modo de enchimento especificado.

(Herdado de SymmetricAlgorithm)
Dispose()
Obsoleto.

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

(Herdado de SymmetricAlgorithm)
Dispose(Boolean)
Obsoleto.

Liberta os recursos não geridos usados pelo SymmetricAlgorithm e opcionalmente liberta os recursos geridos.

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

Encripta dados usando o modo CBC com o modo de enchimento especificado.

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

Encripta dados usando o modo CBC com o modo de enchimento especificado.

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

Encripta os dados no buffer especificado, usando o modo CBC com o modo de enchimento especificado.

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

Encripta dados usando o modo CFB com o modo de enchimento especificado e o tamanho do feedback.

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

Encripta dados usando o modo CFB com o modo de enchimento especificado e o tamanho do feedback.

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

Encripta os dados no buffer especificado, usando o modo CFB com o modo de enchimento e o tamanho de feedback especificados.

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

Encripta dados usando o modo ECB com o modo de enchimento especificado.

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

Encripta dados usando o modo ECB com o modo de enchimento especificado.

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

Encripta os dados no buffer especificado, usando o modo ECB com o modo de enchimento 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) para usar no algoritmo.

GenerateKey()
Obsoleto.

Gera uma chave aleatória (Key) para ser usada no algoritmo.

GetCiphertextLengthCbc(Int32, PaddingMode)
Obsoleto.

Obtém o comprimento de um texto cifrado com um dado modo de enchimento e comprimento de texto simples em modo CBC.

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

Obtém o comprimento de um texto cifrado com um dado modo de enchimento e comprimento de texto simples em modo CFB.

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

Obtém o comprimento de um texto cifrado com um dado modo de enchimento e comprimento de texto simples no modo ECB.

(Herdado de SymmetricAlgorithm)
GetHashCode()
Obsoleto.

Serve como função de hash predefinida.

(Herdado de Object)
GetType()
Obsoleto.

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()
Obsoleto.

Cria uma cópia superficial do atual Object.

(Herdado de Object)
SetKey(ReadOnlySpan<Byte>)
Obsoleto.

Define a chave para esta situação.

(Herdado de SymmetricAlgorithm)
SetKeyCore(ReadOnlySpan<Byte>)
Obsoleto.

Define a chave para esta situação.

(Herdado de SymmetricAlgorithm)
ToString()
Obsoleto.

Devolve uma cadeia que representa o objeto atual.

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

Tenta desencriptar dados no buffer especificado, usando o modo CBC com o modo de enchimento especificado.

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

Quando sobreposto numa classe derivada, tenta desencriptar dados no buffer especificado, usando o modo CBC com o modo de enchimento especificado.

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

Tenta desencriptar dados no buffer especificado, usando o modo CFB com o modo de enchimento e o tamanho de feedback especificados.

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

Quando sobrescrito numa classe derivada, tenta desencriptar dados no buffer especificado, usando o modo CFB com o modo de enchimento especificado e o tamanho de feedback.

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

Tenta desencriptar dados no buffer especificado, usando o modo ECB com o modo de enchimento especificado.

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

Quando sobreposto numa classe derivada, tenta desencriptar dados no buffer especificado, usando o modo ECB com o modo de enchimento especificado.

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

Tenta encriptar dados no buffer especificado, usando o modo CBC com o modo de enchimento especificado.

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

Quando sobrescrito numa classe derivada, tenta encriptar dados no buffer especificado, usando o modo CBC com o modo de enchimento especificado.

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

Tenta encriptar dados no buffer especificado, usando o modo CFB com o modo de enchimento e o tamanho de feedback especificados.

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

Quando sobrescrito numa classe derivada, tenta encriptar dados no buffer especificado, usando o modo CFB com o modo de enchimento e o tamanho de feedback especificados.

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

Tenta encriptar dados no buffer especificado, usando o modo ECB com o modo de enchimento especificado.

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

Quando sobrescrito numa classe derivada, tenta encriptar dados no buffer especificado, usando o modo ECB com o modo de enchimento especificado.

(Herdado de SymmetricAlgorithm)
ValidKeySize(Int32)
Obsoleto.

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

(Herdado de SymmetricAlgorithm)

Implementações de Interface Explícita

Name Description
IDisposable.Dispose()

Esta API suporta a infraestrutura de produtos e não é pressuposta para ser utilizada diretamente a partir do seu código.

Obsoleto.

Liberta os recursos não geridos usados pelo SymmetricAlgorithm e opcionalmente liberta os recursos geridos.

(Herdado de SymmetricAlgorithm)

Aplica-se a

Ver também