Este artigo foi traduzido por máquina. Para visualizar o arquivo em inglês, marque a caixa de seleção Inglês. Você também pode exibir o texto Em inglês em uma janela pop-up, movendo o ponteiro do mouse sobre o texto.
Tradução
Inglês

Classe TripleDESCryptoServiceProvider

 

Publicado: agosto de 2016

System_CAPS_noteObservação

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Define um objeto de wrapper para acessar a versão do CSP (provedor) de serviços de criptografia do TripleDES algoritmo. Essa classe não pode ser herdada.

Namespace:   System.Security.Cryptography
Assembly:  mscorlib (em mscorlib.dll)

System.Object
  System.Security.Cryptography.SymmetricAlgorithm
    System.Security.Cryptography.TripleDES
      System.Security.Cryptography.TripleDESCryptoServiceProvider

[ComVisibleAttribute(true)]
public sealed class TripleDESCryptoServiceProvider : TripleDES

NomeDescrição
System_CAPS_pubmethodTripleDESCryptoServiceProvider()

Inicializa uma nova instância da classe TripleDESCryptoServiceProvider.

NomeDescrição
System_CAPS_pubpropertyBlockSize

Obtém ou define o tamanho do bloco, em bits, da operação de criptografia.(Herdado de SymmetricAlgorithm.)

System_CAPS_pubpropertyFeedbackSize

Obtém ou define o tamanho dos comentários, em bits, da operação de criptografia.(Herdado de SymmetricAlgorithm.)

System_CAPS_pubpropertyIV

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

System_CAPS_pubpropertyKey

Obtém ou define a chave secreta para o algoritmo TripleDES.(Herdado de TripleDES.)

System_CAPS_pubpropertyKeySize

Obtém ou define o tamanho, em bits, da chave secreta usada pelo algoritmo simétrico.(Herdado de SymmetricAlgorithm.)

System_CAPS_pubpropertyLegalBlockSizes

Obtém os tamanhos de bloco, em bits, que tem suporte com o algoritmo simétrico.(Herdado de SymmetricAlgorithm.)

System_CAPS_pubpropertyLegalKeySizes

Obtém os tamanhos de chave, em bits, que têm suporte pelo algoritmo simétrico.(Herdado de SymmetricAlgorithm.)

System_CAPS_pubpropertyMode

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

System_CAPS_pubpropertyPadding

Obtém ou define o modo de preenchimento usado no algoritmo simétrico.(Herdado de SymmetricAlgorithm.)

NomeDescrição
System_CAPS_pubmethodClear()

Libera todos os recursos usados pela classe SymmetricAlgorithm.(Herdado de SymmetricAlgorithm.)

System_CAPS_pubmethodCreateDecryptor()

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

System_CAPS_pubmethodCreateDecryptor(Byte[], Byte[])

Cria um objeto descriptografador TripleDES simétrico usando a chave especificada (Key) e o vetor de inicialização (IV).(Substitui o SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[]).)

System_CAPS_pubmethodCreateEncryptor()

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

System_CAPS_pubmethodCreateEncryptor(Byte[], Byte[])

Cria um objeto criptografador TripleDES simétrico com a chave Key atual e o vetor de inicialização (IV).(Substitui o SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[]).)

System_CAPS_pubmethodDispose()

Libera todos os recursos usados pela instância atual da classe SymmetricAlgorithm.(Herdado de SymmetricAlgorithm.)

System_CAPS_pubmethodEquals(Object)

Determina se o objeto especificado é igual ao objeto atual.(Herdado de Object.)

System_CAPS_pubmethodGenerateIV()

Gera um vetor de inicialização aleatória (IV) a ser usado para o algoritmo.(Substitui o SymmetricAlgorithm.GenerateIV().)

System_CAPS_pubmethodGenerateKey()

Gera Key aleatórios a serem usados para o algoritmo.(Substitui o SymmetricAlgorithm.GenerateKey().)

System_CAPS_pubmethodGetHashCode()

Serve como a função de hash padrão.(Herdado de Object.)

System_CAPS_pubmethodGetType()

Obtém o Type da instância atual.(Herdado de Object.)

System_CAPS_pubmethodToString()

Retorna uma cadeia de caracteres que representa o objeto atual.(Herdado de Object.)

System_CAPS_pubmethodValidKeySize(Int32)

Determina se o tamanho da chave especificado é válido para o algoritmo atual.(Herdado de SymmetricAlgorithm.)

Esse algoritmo dá suporte a tamanhos de chave de 128 bits de 192 bits em incrementos de 64 bits.

System_CAPS_noteObservação

Um algoritmo de criptografia simétrica mais recente, Advanced Encryption Standard (AES), está disponível. Considere o uso de AesCryptoServiceProvider classe o TripleDESCryptoServiceProvider classe. Use TripleDESCryptoServiceProvider somente para compatibilidade com aplicativos herdados e dados.

O exemplo de código a seguir cria um TripleDESCryptoServiceProvider do objeto e o usa para criptografar e descriptografar dados em um arquivo.

using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

class TrippleDESCSPSample
{

    static void Main()
    {
        try
        {
            // Create a new TripleDESCryptoServiceProvider object
            // to generate a key and initialization vector (IV).
            TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServiceProvider();

            // Create a string to encrypt.
            string sData = "Here is some data to encrypt.";
            string FileName = "CText.txt";

            // Encrypt text to a file using the file name, key, and IV.
            EncryptTextToFile(sData, FileName, tDESalg.Key, tDESalg.IV);

            // Decrypt the text from a file using the file name, key, and IV.
            string Final = DecryptTextFromFile(FileName, tDESalg.Key, tDESalg.IV);

            // Display the decrypted string to the console.
            Console.WriteLine(Final);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }

    }

    public static void EncryptTextToFile(String Data, String FileName, byte[] Key, byte[] IV)
    {
        try
        {
            // Create or open the specified file.
            FileStream fStream = File.Open(FileName,FileMode.OpenOrCreate);

            // Create a CryptoStream using the FileStream 
            // and the passed key and initialization vector (IV).
            CryptoStream cStream = new CryptoStream(fStream, 
                new TripleDESCryptoServiceProvider().CreateEncryptor(Key,IV), 
                CryptoStreamMode.Write); 

            // Create a StreamWriter using the CryptoStream.
            StreamWriter sWriter = new StreamWriter(cStream);

            // Write the data to the stream 
            // to encrypt it.
            sWriter.WriteLine(Data);

            // Close the streams and
            // close the file.
            sWriter.Close();
            cStream.Close();
            fStream.Close();
        }
        catch(CryptographicException e)
        {
            Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
        }
        catch(UnauthorizedAccessException  e)
        {
            Console.WriteLine("A file access error occurred: {0}", e.Message);
        }

    }

    public static string DecryptTextFromFile(String FileName, byte[] Key, byte[] IV)
    {
        try
        {
            // Create or open the specified file. 
            FileStream fStream = File.Open(FileName, FileMode.OpenOrCreate);

            // Create a CryptoStream using the FileStream 
            // and the passed key and initialization vector (IV).
            CryptoStream cStream = new CryptoStream(fStream, 
                new TripleDESCryptoServiceProvider().CreateDecryptor(Key,IV), 
                CryptoStreamMode.Read); 

            // Create a StreamReader using the CryptoStream.
            StreamReader sReader = new StreamReader(cStream);

            // Read the data from the stream 
            // to decrypt it.
            string val = sReader.ReadLine();

            // Close the streams and
            // close the file.
            sReader.Close();
            cStream.Close();
            fStream.Close();

            // Return the string. 
            return val;
        }
        catch(CryptographicException e)
        {
            Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
            return null;
        }
        catch(UnauthorizedAccessException  e)
        {
            Console.WriteLine("A file access error occurred: {0}", e.Message);
            return null;
        }
    }
}

O exemplo de código a seguir cria um TripleDESCryptoServiceProvider do objeto e o usa para criptografar e descriptografar dados na memória.

using System;
using System.Security.Cryptography;
using System.Text;
using System.IO;

class TrippleDESCSPSample
{

    static void Main()
    {
        try
        {
            // Create a new TripleDESCryptoServiceProvider object
            // to generate a key and initialization vector (IV).
            TripleDESCryptoServiceProvider tDESalg = new TripleDESCryptoServiceProvider();

            // Create a string to encrypt.
            string sData = "Here is some data to encrypt.";

            // Encrypt the string to an in-memory buffer.
            byte[] Data = EncryptTextToMemory(sData, tDESalg.Key, tDESalg.IV);

            // Decrypt the buffer back to a string.
            string Final = DecryptTextFromMemory(Data, tDESalg.Key, tDESalg.IV);

            // Display the decrypted string to the console.
            Console.WriteLine(Final);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }

    }

    public static byte[] EncryptTextToMemory(string Data,  byte[] Key, byte[] IV)
    {
        try
        {
            // Create a MemoryStream.
            MemoryStream mStream = new MemoryStream();

            // Create a CryptoStream using the MemoryStream 
            // and the passed key and initialization vector (IV).
            CryptoStream cStream = new CryptoStream(mStream, 
                new TripleDESCryptoServiceProvider().CreateEncryptor(Key, IV), 
                CryptoStreamMode.Write);

            // Convert the passed string to a byte array.
            byte[] toEncrypt = new ASCIIEncoding().GetBytes(Data);

            // Write the byte array to the crypto stream and flush it.
            cStream.Write(toEncrypt, 0, toEncrypt.Length);
            cStream.FlushFinalBlock();

            // Get an array of bytes from the 
            // MemoryStream that holds the 
            // encrypted data.
            byte[] ret = mStream.ToArray();

            // Close the streams.
            cStream.Close();
            mStream.Close();

            // Return the encrypted buffer.
            return ret;
        }
        catch(CryptographicException e)
        {
            Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
            return null;
        }

    }

    public static string DecryptTextFromMemory(byte[] Data,  byte[] Key, byte[] IV)
    {
        try
        {
            // Create a new MemoryStream using the passed 
            // array of encrypted data.
            MemoryStream msDecrypt = new MemoryStream(Data);

            // Create a CryptoStream using the MemoryStream 
            // and the passed key and initialization vector (IV).
            CryptoStream csDecrypt = new CryptoStream(msDecrypt, 
                new TripleDESCryptoServiceProvider().CreateDecryptor(Key, IV), 
                CryptoStreamMode.Read);

            // Create buffer to hold the decrypted data.
            byte[] fromEncrypt = new byte[Data.Length];

            // Read the decrypted data out of the crypto stream
            // and place it into the temporary buffer.
            csDecrypt.Read(fromEncrypt, 0, fromEncrypt.Length);

            //Convert the buffer into a string and return it.
            return new ASCIIEncoding().GetString(fromEncrypt);
        }
        catch(CryptographicException e)
        {
            Console.WriteLine("A Cryptographic error occurred: {0}", e.Message);
            return null;
        }
    }
}

.NET Framework
Disponível desde 1.1

Quaisquer membros estáticos públicos ( Compartilhado no Visual Basic) desse tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Retornar ao início
Mostrar: