DESCryptoServiceProvider Classe

Definição

Define um objeto wrapper para acessar a versão do CSP (provedor de serviços criptográficos) do algoritmo Padrão de Criptografia de Dados (DES). 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.Runtime.InteropServices.ComVisible(true)]
public sealed class DESCryptoServiceProvider : System.Security.Cryptography.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 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.

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; usar 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

Nome Description
DESCryptoServiceProvider()

Inicializa uma nova instância da classe DESCryptoServiceProvider.

Campos

Nome Description
BlockSizeValue

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

(Herdado de SymmetricAlgorithm)
FeedbackSizeValue

Representa o tamanho dos comentários, em bits, da operação criptográfica.

(Herdado de SymmetricAlgorithm)
IVValue

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

(Herdado de SymmetricAlgorithm)
KeySizeValue

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

(Herdado de SymmetricAlgorithm)
KeyValue

Representa a chave secreta para o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalBlockSizesValue

Especifica os tamanhos de bloco, em bits, compatíveis com o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalKeySizesValue

Especifica os tamanhos de chave, em bits, compatíveis com o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
ModeValue

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

(Herdado de SymmetricAlgorithm)
PaddingValue

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

(Herdado de SymmetricAlgorithm)

Propriedades

Nome Description
BlockSize

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

(Herdado de SymmetricAlgorithm)
FeedbackSize

Obtém ou define o tamanho dos comentários, em bits, da operação criptográfica para os modos de criptografia cfb (comentários de criptografia) e comentários de saída (OFB).

(Herdado de SymmetricAlgorithm)
IV

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

(Herdado de SymmetricAlgorithm)
Key

Obtém ou define a chave secreta para o algoritmo Padrão de Criptografia de Dados (DES).

(Herdado de DES)
KeySize

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

(Herdado de SymmetricAlgorithm)
LegalBlockSizes

Obtém os tamanhos de bloco, em bits, compatíveis com o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalKeySizes

Obtém os tamanhos de chave, em bits, compatíveis com o algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
Mode

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

(Herdado de SymmetricAlgorithm)
Padding

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

(Herdado de SymmetricAlgorithm)

Métodos

Nome Description
Clear()

Libera todos os recursos usados pela SymmetricAlgorithm classe.

(Herdado de SymmetricAlgorithm)
CreateDecryptor()

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

CreateDecryptor()

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

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

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

CreateEncryptor()

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

CreateEncryptor()

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

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

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

Dispose()

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

(Herdado de SymmetricAlgorithm)
Dispose(Boolean)

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

(Herdado de SymmetricAlgorithm)
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GenerateIV()

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

GenerateKey()

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

GetHashCode()

Serve como a função hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)
ValidKeySize(Int32)

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

(Herdado de SymmetricAlgorithm)

Implantações explícitas de interface

Nome Description
IDisposable.Dispose()

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

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

(Herdado de SymmetricAlgorithm)

Aplica-se a

Confira também