Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

TripleDESCryptoServiceProvider (Clase)

Define un objeto contenedor para obtener acceso a la versión del proveedor de servicios criptográficos (CSP) del algoritmo TripleDES. Esta clase no puede heredarse.

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

Espacio de nombres:  System.Security.Cryptography
Ensamblado:  mscorlib (en mscorlib.dll)
[ComVisibleAttribute(true)]
public sealed class TripleDESCryptoServiceProvider : TripleDES

El tipo TripleDESCryptoServiceProvider expone los siguientes miembros.

  Nombre Descripción
Método público TripleDESCryptoServiceProvider Inicializa una nueva instancia de la clase TripleDESCryptoServiceProvider.
Arriba
  Nombre Descripción
Propiedad pública BlockSize Obtiene o establece el tamaño del bloque de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm).
Propiedad pública FeedbackSize Obtiene o establece el tamaño de respuesta de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm).
Propiedad pública IV Obtiene o establece el vector de inicialización (IV) del algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Propiedad pública Key Obtiene o establece la clave secreta del algoritmo TripleDES. (Se hereda de TripleDES).
Propiedad pública KeySize Obtiene o establece el tamaño de la clave secreta utilizada por el algoritmo simétrico en bits. (Se hereda de SymmetricAlgorithm).
Propiedad pública LegalBlockSizes Obtiene los tamaños de bloque, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Propiedad pública LegalKeySizes Obtiene los tamaños de clave, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Propiedad pública Mode Obtiene o establece el modo de funcionamiento del algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Propiedad pública Padding Obtiene o establece el modo de relleno utilizado en el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Arriba
  Nombre Descripción
Método público Clear Libera todos los recursos que utiliza la clase SymmetricAlgorithm. (Se hereda de SymmetricAlgorithm).
Método público CreateDecryptor() Crea un objeto descifrador simétrico con la propiedad Key y el vector de inicialización (IV) actuales. (Se hereda de SymmetricAlgorithm).
Método público CreateDecryptor(Byte[], Byte[]) Crea un objeto descifrador TripleDES simétrico con la clave (Key) y el vector de inicialización (IV) especificados. (Invalida a SymmetricAlgorithm.CreateDecryptor(Byte[], Byte[])).
Método público CreateEncryptor() Crea un objeto descifrador simétrico con la propiedad Key y el vector de inicialización (IV) actuales. (Se hereda de SymmetricAlgorithm).
Método público CreateEncryptor(Byte[], Byte[]) Crea un objeto cifrador TripleDES simétrico con la clave (Key) y el vector de inicialización (IV) especificados. (Invalida a SymmetricAlgorithm.CreateEncryptor(Byte[], Byte[])).
Método público Dispose() Libera todos los recursos usados por la instancia actual de la clase SymmetricAlgorithm. (Se hereda de SymmetricAlgorithm).
Método protegido Dispose(Boolean) Libera los recursos no administrados que utiliza SymmetricAlgorithm y libera los recursos administrados de forma opcional. (Se hereda de SymmetricAlgorithm).
Método público Equals(Object) Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object).
Método protegido Finalize Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por la recolección de elementos no utilizados. (Se hereda de Object).
Método público GenerateIV Genera un vector de inicialización aleatorio (IV) que se va a utilizar para el algoritmo. (Invalida a SymmetricAlgorithm.GenerateIV()).
Método público GenerateKey Genera una propiedad Key aleatoria que se va a utilizar para el algoritmo. (Invalida a SymmetricAlgorithm.GenerateKey()).
Método público GetHashCode Actúa como función hash para un tipo concreto. (Se hereda de Object).
Método público GetType Obtiene el objeto Type de la instancia actual. (Se hereda de Object).
Método protegido MemberwiseClone Crea una copia superficial del objeto Object actual. (Se hereda de Object).
Método público ToString Devuelve una cadena que representa el objeto actual. (Se hereda de Object).
Método público ValidKeySize Determina si el tamaño de clave especificado es válido para el algoritmo actual. (Se hereda de SymmetricAlgorithm).
Arriba
  Nombre Descripción
Campo protegido BlockSizeValue Representa el tamaño del bloque de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm).
Campo protegido FeedbackSizeValue Representa el tamaño de respuesta de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm).
Campo protegido IVValue Representa el vector de inicialización (IV) del algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Campo protegido KeySizeValue Representa el tamaño en bits de la clave secreta que utiliza el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Campo protegido KeyValue Representa la clave secreta del algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Campo protegido LegalBlockSizesValue Especifica los tamaños de bloque, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Campo protegido LegalKeySizesValue Especifica los tamaños de clave, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Campo protegido ModeValue Representa el modo de cifrado utilizado en el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Campo protegido PaddingValue Representa el modo de relleno utilizado en el algoritmo simétrico. (Se hereda de SymmetricAlgorithm).
Arriba

Este algoritmo admite longitudes de clave entre 128 bits y 192 bits en incrementos de 64 bits.

En el ejemplo de código siguiente se crea un objeto TripleDESCryptoServiceProvider, que después se utiliza para cifrar y descifrar los datos de un archivo.


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


En el ejemplo de código siguiente se crea un objeto TripleDESCryptoServiceProvider, que después se utiliza para cifrar y descifrar datos de la memoria.


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

Compatible con: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.
Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
¿Le ha resultado útil?
(Caracteres restantes: 1500)
Contenido de la comunidad Agregar