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
|
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.Security.Cryptography.SymmetricAlgorithm
System.Security.Cryptography.TripleDES
System.Security.Cryptography.TripleDESCryptoServiceProvider
Ensamblado: mscorlib (en mscorlib.dll)
El tipo TripleDESCryptoServiceProvider expone los siguientes miembros.
| Nombre | Descripción | |
|---|---|---|
|
TripleDESCryptoServiceProvider | Inicializa una nueva instancia de la clase TripleDESCryptoServiceProvider. |
| Nombre | Descripción | |
|---|---|---|
|
BlockSize | Obtiene o establece el tamaño del bloque de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm). |
|
FeedbackSize | Obtiene o establece el tamaño de respuesta de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm). |
|
IV | Obtiene o establece el vector de inicialización (IV) del algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
Key | Obtiene o establece la clave secreta del algoritmo TripleDES. (Se hereda de TripleDES). |
|
KeySize | Obtiene o establece el tamaño de la clave secreta utilizada por el algoritmo simétrico en bits. (Se hereda de SymmetricAlgorithm). |
|
LegalBlockSizes | Obtiene los tamaños de bloque, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
LegalKeySizes | Obtiene los tamaños de clave, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
Mode | Obtiene o establece el modo de funcionamiento del algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
Padding | Obtiene o establece el modo de relleno utilizado en el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
| Nombre | Descripción | |
|---|---|---|
|
Clear | Libera todos los recursos que utiliza la clase SymmetricAlgorithm. (Se hereda de SymmetricAlgorithm). |
|
CreateDecryptor() | Crea un objeto descifrador simétrico con la propiedad Key y el vector de inicialización (IV) actuales. (Se hereda de SymmetricAlgorithm). |
|
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[])). |
|
CreateEncryptor() | Crea un objeto descifrador simétrico con la propiedad Key y el vector de inicialización (IV) actuales. (Se hereda de SymmetricAlgorithm). |
|
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[])). |
|
Dispose() | Libera todos los recursos usados por la instancia actual de la clase SymmetricAlgorithm. (Se hereda de SymmetricAlgorithm). |
|
Dispose(Boolean) | Libera los recursos no administrados que utiliza SymmetricAlgorithm y libera los recursos administrados de forma opcional. (Se hereda de SymmetricAlgorithm). |
|
Equals(Object) | Determina si el objeto Object especificado es igual al objeto Object actual. (Se hereda de Object). |
|
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). |
|
GenerateIV | Genera un vector de inicialización aleatorio (IV) que se va a utilizar para el algoritmo. (Invalida a SymmetricAlgorithm.GenerateIV()). |
|
GenerateKey | Genera una propiedad Key aleatoria que se va a utilizar para el algoritmo. (Invalida a SymmetricAlgorithm.GenerateKey()). |
|
GetHashCode | Actúa como función hash para un tipo concreto. (Se hereda de Object). |
|
GetType | Obtiene el objeto Type de la instancia actual. (Se hereda de Object). |
|
MemberwiseClone | Crea una copia superficial del objeto Object actual. (Se hereda de Object). |
|
ToString | Devuelve una cadena que representa el objeto actual. (Se hereda de Object). |
|
ValidKeySize | Determina si el tamaño de clave especificado es válido para el algoritmo actual. (Se hereda de SymmetricAlgorithm). |
| Nombre | Descripción | |
|---|---|---|
|
BlockSizeValue | Representa el tamaño del bloque de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm). |
|
FeedbackSizeValue | Representa el tamaño de respuesta de la operación criptográfica en bits. (Se hereda de SymmetricAlgorithm). |
|
IVValue | Representa el vector de inicialización (IV) del algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
KeySizeValue | Representa el tamaño en bits de la clave secreta que utiliza el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
KeyValue | Representa la clave secreta del algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
LegalBlockSizesValue | Especifica los tamaños de bloque, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
LegalKeySizesValue | Especifica los tamaños de clave, en bits, admitidos por el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
ModeValue | Representa el modo de cifrado utilizado en el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
|
PaddingValue | Representa el modo de relleno utilizado en el algoritmo simétrico. (Se hereda de SymmetricAlgorithm). |
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; } } }
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.