DESCryptoServiceProvider Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
- 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) |