DESCryptoServiceProvider Classe

Definição

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

Inicializa uma nova instância da DESCryptoServiceProvider classe.

Campos

Name Description
BlockSizeValue

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

(Herdado de SymmetricAlgorithm)
FeedbackSizeValue

Representa o tamanho do feedback, 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 dos blocos, em bits, suportados pelo algoritmo simétrico.

(Herdado de SymmetricAlgorithm)
LegalKeySizesValue

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

(Herdado de SymmetricAlgorithm)
ModeValue

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

(Herdado de SymmetricAlgorithm)
PaddingValue

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

(Herdado de SymmetricAlgorithm)

Propriedades

Name 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 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

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

(Herdado de SymmetricAlgorithm)
LegalKeySizes

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

(Herdado de SymmetricAlgorithm)

Métodos

Name Description
Clear()

Liberta todos os recursos usados pela SymmetricAlgorithm turma.

(Herdado de SymmetricAlgorithm)
CreateDecryptor()

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

CreateDecryptor()

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

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

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

CreateEncryptor()

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

CreateEncryptor()

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

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

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

Dispose()

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

(Herdado de SymmetricAlgorithm)
Dispose(Boolean)

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

(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) para usar no algoritmo.

GenerateKey()

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

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Devolve uma cadeia 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)

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.

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

(Herdado de SymmetricAlgorithm)

Aplica-se a

Ver também