TripleDES Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa la clase base de los algoritmos 3DES (Triple Data Encryption Standard) de la cual deben derivarse todas las implementaciones de TripleDES.
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
- Herencia
- Derivado
- Atributos
Ejemplos
El método de ejemplo de código siguiente usa TripleDESCryptoServiceProvider con la clave especificada (Key) y el vector de inicialización (IV) para cifrar un archivo especificado por inName
. A continuación, genera el resultado cifrado en el archivo 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
El descifrado se puede controlar de la misma manera; use CreateDecryptor en lugar de CreateEncryptor. La misma clave () y el vector de inicialización (KeyIV) que se usan para cifrar el archivo deben usarse para descifrarlo.
Comentarios
TripleDES usa tres iteraciones sucesivas del DES algoritmo. Puede usar dos o tres claves de 56 bits.
Nota
Hay disponible un algoritmo de cifrado simétrico más reciente, Advanced Encryption Standard (AES). Considere la posibilidad de usar la Aes clase y sus clases derivadas en lugar de la TripleDES clase . Use TripleDES solo para la compatibilidad con aplicaciones y datos heredados.
Este algoritmo admite longitudes de clave de 128 bits a 192 bits en incrementos de 64 bits.
Constructores
TripleDES() |
Inicializa una nueva instancia de la clase TripleDES. |
Campos
BlockSizeValue |
Representa el tamaño del bloque de la operación criptográfica en bits. (Heredado de SymmetricAlgorithm) |
FeedbackSizeValue |
Representa el tamaño de respuesta de la operación criptográfica en bits. (Heredado de SymmetricAlgorithm) |
IVValue |
Representa el vector de inicialización (IV) del algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
KeySizeValue |
Representa el tamaño en bits de la clave secreta que usa el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
KeyValue |
Representa la clave secreta del algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
LegalBlockSizesValue |
Especifica los tamaños de bloque, en bits, admitidos por el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
LegalKeySizesValue |
Especifica los tamaños de clave, en bits, admitidos por el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
ModeValue |
Representa el modo de cifrado usado en el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
PaddingValue |
Representa el modo de relleno usado en el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
Propiedades
BlockSize |
Obtiene o establece el tamaño del bloque de la operación criptográfica en bits. (Heredado de SymmetricAlgorithm) |
FeedbackSize |
Obtiene o establece el tamaño de los comentarios, en bits, de la operación criptográfica de los modos de cifrado Comentarios de cifrado (CFB) y Comentarios de salida (OFB). (Heredado de SymmetricAlgorithm) |
IV |
Obtiene o establece el vector de inicialización (IV) del algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
Key |
Obtiene o establece la clave secreta del algoritmo TripleDES. |
KeySize |
Obtiene o establece el tamaño de la clave secreta utilizada por el algoritmo simétrico en bits. (Heredado de SymmetricAlgorithm) |
LegalBlockSizes |
Obtiene los tamaños de bloque, en bits, admitidos por el algoritmo simétrico. |
LegalBlockSizes |
Obtiene los tamaños de bloque, en bits, admitidos por el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
LegalKeySizes |
Obtiene los tamaños de clave, en bits, admitidos por el algoritmo simétrico. |
LegalKeySizes |
Obtiene los tamaños de clave, en bits, admitidos por el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
Mode |
Obtiene o establece el modo de funcionamiento del algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
Padding |
Obtiene o establece el modo de relleno usado en el algoritmo simétrico. (Heredado de SymmetricAlgorithm) |
Métodos
Clear() |
Libera todos los recursos que utiliza la clase SymmetricAlgorithm. (Heredado de SymmetricAlgorithm) |
Create() |
Crea una instancia de un objeto criptográfico para realizar el algoritmo TripleDES. |
Create(String) |
Obsoletos.
Crea una instancia de un objeto criptográfico para ejecutar la implementación especificada del algoritmo TripleDES. |
CreateDecryptor() |
Crea un objeto descifrador simétrico con la propiedad Key y el vector de inicialización (IV) actuales. (Heredado de SymmetricAlgorithm) |
CreateDecryptor(Byte[], Byte[]) |
Cuando se invalida en una clase derivada, crea un objeto descifrador simétrico con la propiedad Key y el vector de inicialización (IV) especificados. (Heredado de SymmetricAlgorithm) |
CreateEncryptor() |
Crea un objeto cifrador simétrico con la propiedad Key y el vector de inicialización (IV) actuales. (Heredado de SymmetricAlgorithm) |
CreateEncryptor(Byte[], Byte[]) |
Cuando se invalida en una clase derivada, se crea un objeto descifrador simétrico con la propiedad Key y el vector de inicialización (IV) especificados. (Heredado de SymmetricAlgorithm) |
DecryptCbc(Byte[], Byte[], PaddingMode) |
Descifra los datos mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Descifra los datos mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
DecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Descifra los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
DecryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Descifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Descifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
DecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Descifra los datos en el búfer especificado, mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
DecryptEcb(Byte[], PaddingMode) |
Descifra los datos mediante el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Descifra los datos mediante el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
DecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Descifra los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
Dispose() |
Libera todos los recursos usados por la instancia actual de la clase SymmetricAlgorithm. (Heredado de SymmetricAlgorithm) |
Dispose(Boolean) |
Libera los recursos no administrados que usa SymmetricAlgorithm y, de forma opcional, libera los recursos administrados. (Heredado de SymmetricAlgorithm) |
EncryptCbc(Byte[], Byte[], PaddingMode) |
Cifra los datos mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode) |
Cifra los datos mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
EncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Cifra los datos en el búfer especificado, utilizando el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
EncryptCfb(Byte[], Byte[], PaddingMode, Int32) |
Cifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, PaddingMode, Int32) |
Cifra los datos mediante el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
EncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Cifra los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
EncryptEcb(Byte[], PaddingMode) |
Cifra los datos mediante el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, PaddingMode) |
Cifra los datos mediante el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
EncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode) |
Cifra los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GenerateIV() |
Cuando se invalida en una clase derivada, genera un vector de inicialización aleatorio (IV), que se usa para el algoritmo. (Heredado de SymmetricAlgorithm) |
GenerateKey() |
Cuando se invalida en una clase derivada, genera una clave aleatoria (Key), que se usa para el algoritmo. (Heredado de SymmetricAlgorithm) |
GetCiphertextLengthCbc(Int32, PaddingMode) |
Obtiene la longitud de un texto cifrado con un modo de relleno determinado y longitud de texto no cifrado en modo CBC. (Heredado de SymmetricAlgorithm) |
GetCiphertextLengthCfb(Int32, PaddingMode, Int32) |
Obtiene la longitud de un texto cifrado con un modo de relleno determinado y la longitud de texto no cifrado en modo CFB. (Heredado de SymmetricAlgorithm) |
GetCiphertextLengthEcb(Int32, PaddingMode) |
Obtiene la longitud de un texto cifrado con un determinado modo de relleno y longitud de texto no cifrado en modo ECB. (Heredado de SymmetricAlgorithm) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
IsWeakKey(Byte[]) |
Determina si la clave especificada es débil. |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
TryDecryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Intenta descifrar los datos en el búfer especificado mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
TryDecryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Cuando se invalida en una clase derivada, intenta descifrar los datos en el búfer especificado, mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
TryDecryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Intenta descifrar los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
TryDecryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Cuando se invalida en una clase derivada, intenta descifrar los datos en el búfer especificado, mediante el modo CFB con el modo de relleno especificado y el tamaño de comentarios. (Heredado de SymmetricAlgorithm) |
TryDecryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Intenta descifrar los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
TryDecryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Cuando se invalida en una clase derivada, intenta descifrar los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
TryEncryptCbc(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode) |
Intenta cifrar los datos en el búfer especificado mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
TryEncryptCbcCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Cuando se invalida en una clase derivada, intenta cifrar los datos en el búfer especificado, mediante el modo CBC con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
TryEncryptCfb(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, Int32, PaddingMode, Int32) |
Intenta cifrar los datos en el búfer especificado, utilizando el modo CFB con el modo de relleno y el tamaño de comentarios especificados. (Heredado de SymmetricAlgorithm) |
TryEncryptCfbCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32, Int32) |
Cuando se invalida en una clase derivada, intenta cifrar los datos en el búfer especificado, mediante el modo CFB con el modo de relleno especificado y el tamaño de comentarios. (Heredado de SymmetricAlgorithm) |
TryEncryptEcb(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Intenta cifrar los datos en el búfer especificado, utilizando el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
TryEncryptEcbCore(ReadOnlySpan<Byte>, Span<Byte>, PaddingMode, Int32) |
Cuando se invalida en una clase derivada, intenta cifrar los datos en el búfer especificado mediante el modo ECB con el modo de relleno especificado. (Heredado de SymmetricAlgorithm) |
ValidKeySize(Int32) |
Determina si el tamaño de clave especificado es válido para el algoritmo actual. (Heredado de SymmetricAlgorithm) |
Implementaciones de interfaz explícitas
IDisposable.Dispose() |
Esta API admite la infraestructura de producto y no está pensada para usarse directamente en el código. Libera los recursos no administrados que usa SymmetricAlgorithm y, de forma opcional, libera los recursos administrados. (Heredado de SymmetricAlgorithm) |