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 SymmetricAlgorithm

 

Representa a classe base abstrata da qual todas as implementações de algoritmos simétricos devem ser herdadas.

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


[ComVisibleAttribute(true)]
public abstract class SymmetricAlgorithm : IDisposable

NomeDescrição
System_CAPS_protmethodSymmetricAlgorithm()

Inicializa uma nova instância da classe SymmetricAlgorithm.

NomeDescrição
System_CAPS_pubpropertyBlockSize

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

System_CAPS_pubpropertyFeedbackSize

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

System_CAPS_pubpropertyIV

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

System_CAPS_pubpropertyKey

Obtém ou define a chave secreta para o algoritmo simétrico.

System_CAPS_pubpropertyKeySize

Obtém ou define o tamanho, em bits, da chave secreta usada pelo algoritmo simétrico.

System_CAPS_pubpropertyLegalBlockSizes

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

System_CAPS_pubpropertyLegalKeySizes

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

System_CAPS_pubpropertyMode

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

System_CAPS_pubpropertyPadding

Obtém ou define o modo de preenchimento usado no algoritmo simétrico.

NomeDescrição
System_CAPS_pubmethodClear()

Libera todos os recursos usados pela classe SymmetricAlgorithm.

System_CAPS_pubmethodSystem_CAPS_staticCreate()

Cria um objeto de criptografia padrão usado para executar o algoritmo simétrico.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String)

Cria o objeto criptográfico especificado usado para executar o algoritmo simétrico.

System_CAPS_pubmethodCreateDecryptor()

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

System_CAPS_pubmethodCreateDecryptor(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).

System_CAPS_pubmethodCreateEncryptor()

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

System_CAPS_pubmethodCreateEncryptor(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).

System_CAPS_pubmethodDispose()

Libera todos os recursos usados pela instância atual do SymmetricAlgorithm classe.

System_CAPS_protmethodDispose(Boolean)

Libera os recursos não gerenciados usados pelo SymmetricAlgorithm e opcionalmente libera os recursos gerenciados.

System_CAPS_pubmethodEquals(Object)

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

System_CAPS_protmethodFinalize()

Permite que um objeto tente liberar recursos e executar outras operações de limpeza antes que ele seja recuperado pela coleta de lixo. (Herdado de Object.)

System_CAPS_pubmethodGenerateIV()

Quando substituído em uma classe derivada, gera um vetor de inicialização aleatório (IV) a ser usado para o algoritmo.

System_CAPS_pubmethodGenerateKey()

Quando substituído em uma classe derivada, gera uma chave aleatória (Key) para ser usada com o algoritmo.

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_protmethodMemberwiseClone()

Cria uma cópia superficial do Object atual.(Herdado de Object.)

System_CAPS_pubmethodToString()

Retorna uma string 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.

NomeDescrição
System_CAPS_protfieldBlockSizeValue

Representa o tamanho do bloco, em bits, da operação criptográfica.

System_CAPS_protfieldFeedbackSizeValue

Representa o tamanho do comentário, em bits, a operação de criptografia.

System_CAPS_protfieldIVValue

Representa o vetor de inicialização (IV) do algoritmo simétrico.

System_CAPS_protfieldKeySizeValue

Representa o tamanho, em bits, da chave secreta usada pelo algoritmo simétrico.

System_CAPS_protfieldKeyValue

Representa a chave secreta para o algoritmo simétrico.

System_CAPS_protfieldLegalBlockSizesValue

Especifica os tamanhos de bloco, em bits, que são compatíveis com o algoritmo simétrico.

System_CAPS_protfieldLegalKeySizesValue

Especifica os tamanhos de chave em bits, que são compatíveis com o algoritmo simétrico.

System_CAPS_protfieldModeValue

Representa o modo de criptografia usado no algoritmo simétrico.

System_CAPS_protfieldPaddingValue

Representa o modo de preenchimento usado no algoritmo simétrico.

The classes that derive from the T:System.Security.Cryptography.SymmetricAlgorithm class use a chaining mode called cipher block chaining (CBC), which requires a key (P:System.Security.Cryptography.SymmetricAlgorithm.Key) and an initialization vector (P:System.Security.Cryptography.SymmetricAlgorithm.IV) to perform cryptographic transformations on data. To decrypt data that was encrypted using one of the T:System.Security.Cryptography.SymmetricAlgorithm classes, you must set the P:System.Security.Cryptography.SymmetricAlgorithm.Key property and the P:System.Security.Cryptography.SymmetricAlgorithm.IV property to the same values that were used for encryption. For a symmetric algorithm to be useful, the secret key must be known only to the sender and the receiver.

RijndaelManaged, DESCryptoServiceProvider, RC2CryptoServiceProvider, and TripleDESCryptoServiceProvider are implementations of symmetric algorithms.

Note that when using derived classes, it is not enough, from a security perspective, to simply force a garbage collection after you have finished using the object. You must explicitly call the M:System.Security.Cryptography.SymmetricAlgorithm.Clear method on the object to zero out any sensitive data within the object before it is released. Note that garbage collection does not zero out the contents of collected objects but simply marks the memory as available for reallocation. Thus the data contained within a garbage collected object may still be present in the memory heap in unallocated memory. In the case of cryptographic objects, this data could contain sensitive information such as key data or a block of plain text.

All cryptographic classes in the .NET Framework that hold sensitive data implement a Clear method. When called, the Clear method overwrites all sensitive data within the object with zeros and then releases the object so that it can be safely garbage collected. When the object has been zeroed and released, you should then call the Dispose method with the disposing parameter set to True to dispose of all managed and unmanaged resources associated with the object.

Observações para os Herdeiros:

When you inherit from the T:System.Security.Cryptography.SymmetricAlgorithm class, you must override the following members: M:System.Security.Cryptography.SymmetricAlgorithm.CreateDecryptor(System.Byte[],System.Byte[]), M:System.Security.Cryptography.SymmetricAlgorithm.CreateEncryptor(System.Byte[],System.Byte[]), M:System.Security.Cryptography.SymmetricAlgorithm.GenerateIV, and M:System.Security.Cryptography.SymmetricAlgorithm.GenerateKey.

The following code example uses the T:System.Security.Cryptography.RijndaelManaged class with the specified P:System.Security.Cryptography.SymmetricAlgorithm.Key property and initialization vector (P:System.Security.Cryptography.SymmetricAlgorithm.IV) to encrypt a file specified by inName, and outputs the encrypted result to the file specified by outName. The desKey and desIV parameters to the method are 8-byte arrays. You must have the high encryption pack installed to run this example.

private static void EncryptData(String inName, String outName, byte[] rijnKey, byte[] rijnIV)
 {    
     //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.

     SymmetricAlgorithm rijn = SymmetricAlgorithm.Create(); //Creates the default implementation, which is RijndaelManaged.         
     CryptoStream encStream = new CryptoStream(fout, rijn.CreateEncryptor(rijnKey, rijnIV), 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();  
     fout.Close();
     fin.Close();                   
 }

.NET Framework
Disponível desde 1.1
Silverlight
Disponível desde 2.0
Windows Phone Silverlight
Disponível desde 7.0

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: