SymmetricAlgorithm Classe
TOC
Comprimi il sommario
Espandi il sommario
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe SymmetricAlgorithm

 

Rappresenta la classe base astratta dalla quale devono ereditare tutte le implementazioni di algoritmi simmetrici.

Spazio dei nomi:   System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)


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

NomeDescrizione
System_CAPS_protmethodSymmetricAlgorithm()

Inizializza una nuova istanza della classe SymmetricAlgorithm.

NomeDescrizione
System_CAPS_pubpropertyBlockSize

Ottiene o imposta la dimensione in bit del blocco dell'operazione di crittografia.

System_CAPS_pubpropertyFeedbackSize

Ottiene o imposta la dimensione in bit della quantità di informazioni raccolte dell'operazione di crittografia.

System_CAPS_pubpropertyIV

Ottiene o imposta il vettore di inizializzazione IV per l'algoritmo simmetrico.

System_CAPS_pubpropertyKey

Ottiene o imposta la chiave privata per l'algoritmo simmetrico.

System_CAPS_pubpropertyKeySize

Ottiene o imposta la dimensione in bit della chiave privata usata dall'algoritmo simmetrico.

System_CAPS_pubpropertyLegalBlockSizes

Ottiene le dimensioni in bit dei blocchi supportate dall'algoritmo simmetrico.

System_CAPS_pubpropertyLegalKeySizes

Ottiene le dimensioni in bit delle chiavi supportate dall'algoritmo simmetrico.

System_CAPS_pubpropertyMode

Ottiene o imposta la modalità di funzionamento dell'algoritmo simmetrico.

System_CAPS_pubpropertyPadding

Ottiene o imposta la modalità di riempimento usata nell'algoritmo simmetrico.

NomeDescrizione
System_CAPS_pubmethodClear()

Rilascia tutte le risorse usate dalla classe SymmetricAlgorithm.

System_CAPS_pubmethodSystem_CAPS_staticCreate()

Crea l'oggetto di crittografia predefinito usato per eseguire l'algoritmo simmetrico.

System_CAPS_pubmethodSystem_CAPS_staticCreate(String)

Crea l'oggetto di crittografia specificato usato per eseguire l'algoritmo simmetrico.

System_CAPS_pubmethodCreateDecryptor()

Crea un oggetto di decrittografia simmetrica con la proprietà Key corrente e il vettore di inizializzazione IV.

System_CAPS_pubmethodCreateDecryptor(Byte[], Byte[])

Quando è sottoposto a override in una classe derivata, crea un oggetto di decrittografia simmetrica con la proprietà Key e il vettore di inizializzazione IV specificati.

System_CAPS_pubmethodCreateEncryptor()

Crea un oggetto di crittografia simmetrica con la proprietà Key corrente e il vettore di inizializzazione IV.

System_CAPS_pubmethodCreateEncryptor(Byte[], Byte[])

Quando è sottoposto a override in una classe derivata, crea un oggetto di crittografia simmetrica con la proprietà Key e il vettore di inizializzazione IV specificati.

System_CAPS_pubmethodDispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe SymmetricAlgorithm.

System_CAPS_protmethodDispose(Boolean)

Rilascia le risorse non gestite usate da SymmetricAlgorithm e, facoltativamente, le risorse gestite.

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodGenerateIV()

Quando è sottoposto a override in una classe derivata, genera un vettore di inizializzazione casuale IV da usare per l'algoritmo.

System_CAPS_pubmethodGenerateKey()

Quando è sottoposto a override in una classe derivata, genera una chiave casuale Key da usare per l'algoritmo.

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash per un particolare tipo. (Ereditato da Object.)

System_CAPS_pubmethodGetType()

Ottiene il Type dell'istanza corrente. (Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object.)

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

System_CAPS_pubmethodValidKeySize(Int32)

Determina se la dimensione della chiave specificata è valida per l'algoritmo corrente.

NomeDescrizione
System_CAPS_protfieldBlockSizeValue

Rappresenta la dimensione in bit del blocco dell'operazione di crittografia.

System_CAPS_protfieldFeedbackSizeValue

Rappresenta la dimensione in bit della quantità di informazioni raccolte dell'operazione di crittografia.

System_CAPS_protfieldIVValue

Rappresenta il vettore di inizializzazione IV per l'algoritmo simmetrico.

System_CAPS_protfieldKeySizeValue

Rappresenta la dimensione in bit della chiave privata usata dall'algoritmo simmetrico.

System_CAPS_protfieldKeyValue

Rappresenta la chiave privata per l'algoritmo simmetrico.

System_CAPS_protfieldLegalBlockSizesValue

Specifica le dimensioni in bit dei blocchi supportate dall'algoritmo simmetrico.

System_CAPS_protfieldLegalKeySizesValue

Specifica le dimensioni in bit delle chiavi supportate dall'algoritmo simmetrico.

System_CAPS_protfieldModeValue

Rappresenta la modalità di crittografia usata nell'algoritmo simmetrico.

System_CAPS_protfieldPaddingValue

Rappresenta la modalità di riempimento usata nell'algoritmo simmetrico.

Le classi che derivano dalla SymmetricAlgorithm classe utilizzano un modello di concatenazione denominato cipher block chaining (CBC), che richiede una chiave (Key) e un vettore di inizializzazione (IV) per eseguire trasformazioni crittografiche sui dati.Per decrittografare dati crittografati utilizzando uno del SymmetricAlgorithm classi, è necessario impostare la Key proprietà e il IV proprietà gli stessi valori utilizzati per la crittografia.Per un algoritmo simmetrico possa essere utile, la chiave privata deve essere noto solo al mittente e destinatario.

RijndaelManaged, DESCryptoServiceProvider, RC2CryptoServiceProvider, e TripleDESCryptoServiceProvider sono implementazioni di algoritmi simmetrici.

Si noti che quando si utilizzano le classi derivate, non è sufficiente, da una prospettiva di protezione, imporre semplicemente una garbage collection dopo aver utilizzato l'oggetto.È necessario chiamare esplicitamente il Clear metodo sull'oggetto per azzerare tutti i dati riservati all'interno dell'oggetto prima che venga rilasciato.Si noti che la procedura di garbage collection diverso da zero il contenuto degli oggetti raccolti ma indica semplicemente la memoria disponibile per la riassegnazione.Pertanto i dati contenuti all'interno di un oggetto raccolto garbage potrebbero essere ancora presenti nell'heap della memoria nella memoria non allocata.Nel caso di oggetti di crittografia, questi dati potrebbero contenere informazioni riservate, ad esempio i dati della chiave o un blocco di testo normale.

Crittografia di tutte le classi in .NET Framework che contengono dati riservati implementano un Clear metodo.Quando viene chiamato, il Clear metodo sovrascrive tutti i dati riservati all'interno dell'oggetto con zero, quindi rilascia l'oggetto in modo che possa essere sottoposto a garbage collection in modo sicuro.Quando l'oggetto è stato azzerato e rilasciato, è necessario chiamare il Dispose metodo con il disposing parametro impostato su True per eliminare tutte le risorse gestite e associate all'oggetto.

Note per gli eredi:

Quando si eredita dal SymmetricAlgorithm (classe), è necessario eseguire l'override dei seguenti membri: CreateDecryptor, CreateEncryptor, GenerateIV, e GenerateKey.

I seguente esempio viene utilizzata la RijndaelManaged classe con l'oggetto specificato Key vettore di inizializzazione e di proprietà (IV) per crittografare un file specificato da inName, e restituisce il risultato crittografato nel file specificato da outName.Il desKey e desIV parametri al metodo sono matrici a 8 byte.È necessario che il pacchetto crittografia elevata installato per eseguire questo esempio.

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

Universal Windows Platform
Disponibile da 10
.NET Framework
Disponibile da 1.1
Silverlight
Disponibile da 2.0
Windows Phone Silverlight
Disponibile da 7.0

Eventuali membri pubblici statici (Shared in Visual Basic) di questo tipo sono thread-safe. I membri di istanza non sono garantiti come thread-safe.

Torna all'inizio
Mostra:
© 2016 Microsoft