TripleDES Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Representa a classe base para algoritmos DES triplo dos quais todas as implementações TripleDES devem derivar.
public ref class TripleDES abstract : System::Security::Cryptography::SymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class TripleDES : System.Security.Cryptography.SymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type TripleDES = class
inherit SymmetricAlgorithm
type TripleDES = class
inherit SymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type TripleDES = class
inherit SymmetricAlgorithm
Public MustInherit Class TripleDES
Inherits SymmetricAlgorithm
- Herança
- Derivado
- Atributos
Exemplos
O método de exemplo de código a seguir usa TripleDESCryptoServiceProvider 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>^tdesKey, array<Byte>^tdesIV )
{
//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.
TripleDESCryptoServiceProvider^ tdes = gcnew TripleDESCryptoServiceProvider;
CryptoStream^ encStream = gcnew CryptoStream( fout,tdes->CreateEncryptor( tdesKey, tdesIV ),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();
}
private static void EncryptData(string inName, string outName, byte[] tdesKey, byte[] tdesIV)
{
//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.
TripleDESCryptoServiceProvider tdes = new TripleDESCryptoServiceProvider();
CryptoStream encStream = new CryptoStream(fout, tdes.CreateEncryptor(tdesKey, tdesIV), 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();
}
Private Shared Sub EncryptData(inName As String, outName As String, _
tdesKey() As Byte, tdesIV() 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(100) 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 'This is the total length of the input file.
Dim len As Integer 'This is the number of bytes to be written at a time.
Dim tdes As New TripleDESCryptoServiceProvider()
Dim encStream As New CryptoStream(fout, _
tdes.CreateEncryptor(tdesKey, tdesIV), 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)
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
TripleDES usa três iterações sucessivas do DES algoritmo. Ele pode usar duas ou três chaves de 56 bits.
Observação
Um algoritmo de criptografia simétrica mais recente, AES (Advanced Encryption Standard), está disponível. Considere usar a Aes classe e suas classes derivadas em vez da TripleDES classe . Use TripleDES apenas para compatibilidade com aplicativos e dados herdados.
Esse algoritmo dá suporte a comprimentos de chave de 128 bits a 192 bits em incrementos de 64 bits.
Construtores
TripleDES() |
Inicializa uma nova instância da classe TripleDES. |
Campos
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 de criptografia. (Herdado de SymmetricAlgorithm) |
IVValue |
Representa o vetor de inicialização (IV) do 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, que têm suporte pelo algoritmo simétrico. (Herdado de SymmetricAlgorithm) |
LegalKeySizesValue |
Especifica os tamanhos de chave, em bits, que têm suporte pelo 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
BlockSize |
Obtém ou define o tamanho do bloco, em bits, da operação de criptografia. (Herdado de SymmetricAlgorithm) |
FeedbackSize |
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 |
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 TripleDES. |
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, que tem suporte com o algoritmo simétrico. |
LegalBlockSizes |
Obtém os tamanhos de bloco, em bits, que tem suporte com o algoritmo simétrico. (Herdado de SymmetricAlgorithm) |
LegalKeySizes |
Obtém os tamanhos de chave, em bits, que têm suporte pelo algoritmo simétrico. |
LegalKeySizes |
Obtém os tamanhos de chave, em bits, que têm suporte 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 preenchimento usado no algoritmo simétrico. (Herdado de SymmetricAlgorithm) |
Métodos
Clear() |
Libera todos os recursos usados pela classe SymmetricAlgorithm. (Herdado de SymmetricAlgorithm) |
Create() |
Cria uma instância de um objeto criptográfico para executar o algoritmo TripleDES. |
Create(String) |
Obsoleto.
Cria uma instância de um objeto criptográfico para realizar a implementação especificada do algoritmo TripleDES. |
CreateDecryptor() |
Cria um objeto descriptografador simétrico com a propriedade Key atual e o vetor de inicialização (IV). (Herdado de SymmetricAlgorithm) |
CreateDecryptor(Byte[], Byte[]) |
Quando substituído em uma classe derivada, cria um objeto descriptografador simétrico com a propriedade Key especificada e o vetor de inicialização (IV). (Herdado de SymmetricAlgorithm) |
CreateEncryptor() |
Cria um objeto criptografador simétrico com a propriedade Key atual e o vetor de inicialização (IV). (Herdado de SymmetricAlgorithm) |
CreateEncryptor(Byte[], Byte[]) |
Quando substituído em uma classe derivada, cria um objeto criptografador simétrico com a propriedade Key especificada e o vetor de inicialização (IV). (Herdado de SymmetricAlgorithm) |
DecryptCbc(Byte[], Byte[], PaddingMode) |
Descriptografa dados usando o modo CBC com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Descriptografa dados usando o modo CBC com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Descriptografa dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
DecryptCfb(Byte[], Byte[], PaddingMode, Int32) |
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) |
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) |
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) |
Descriptografa dados usando o modo ECB com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Descriptografa dados usando o modo ECB com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Descriptografa dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
Dispose() |
Libera todos os recursos usados pela instância atual da classe SymmetricAlgorithm. (Herdado de SymmetricAlgorithm) |
Dispose(Boolean) |
Libera os recursos não gerenciados usados pelo SymmetricAlgorithm e opcionalmente libera os recursos gerenciados. (Herdado de SymmetricAlgorithm) |
EncryptCbc(Byte[], Byte[], PaddingMode) |
Criptografa dados usando o modo CBC com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Criptografa dados usando o modo CBC com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Criptografa dados no buffer especificado, usando o modo CBC com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
EncryptCfb(Byte[], Byte[], PaddingMode, Int32) |
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) |
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) |
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) |
Criptografa dados usando o modo ECB com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Criptografa dados usando o modo ECB com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Criptografa dados no buffer especificado, usando o modo ECB com o modo de preenchimento especificado. (Herdado de SymmetricAlgorithm) |
Equals(Object) |
Determina se o objeto especificado é igual ao objeto atual. (Herdado de Object) |
GenerateIV() |
Quando substituído em uma classe derivada, gera um vetor de inicialização aleatório (IV) a ser usado para o algoritmo. (Herdado de SymmetricAlgorithm) |
GenerateKey() |
Quando substituído em uma classe derivada, gera uma chave aleatória (Key) para ser usada com o algoritmo. (Herdado de SymmetricAlgorithm) |
GetCiphertextLengthCbc(Int32, PaddingMode) |
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) |
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) |
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() |
Serve como a função de hash padrão. (Herdado de Object) |
GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
IsWeakKey(Byte[]) |
Determina se a chave especificada é fraca. |
MemberwiseClone() |
Cria uma cópia superficial do Object atual. (Herdado de Object) |
ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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) |
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. Libera os recursos não gerenciados usados pelo SymmetricAlgorithm e opcionalmente libera os recursos gerenciados. (Herdado de SymmetricAlgorithm) |