Esporta (0) Stampa
Espandi tutto
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe MD5

Rappresenta la classe astratta dalla quale ereditano tutte le implementazioni dell'algoritmo hash MD5.

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

[ComVisibleAttribute(true)]
public abstract class MD5 : HashAlgorithm

Il tipo MD5 espone i seguenti membri.

  NomeDescrizione
Metodo protettoMD5Inizializza una nuova istanza di MD5.
In alto

  NomeDescrizione
Proprietà pubblicaCanReuseTransformottiene un valore che indica se la trasformazione corrente può essere riutilizzata. (Ereditato da HashAlgorithm)
Proprietà pubblicaCanTransformMultipleBlocksUna volta sottoposto a override in una classe derivata, ottiene un valore che indica se i blocchi più possono essere trasformati. (Ereditato da HashAlgorithm)
Proprietà pubblicaHashOttiene il valore del codice hash calcolato. (Ereditato da HashAlgorithm)
Proprietà pubblicaHashSizeOttiene la dimensione, in bit, il codice hash calcolato. (Ereditato da HashAlgorithm)
Proprietà pubblicaInputBlockSizeUna volta sottoposto a override in una classe derivata, ottiene la dimensione di un blocco di input. (Ereditato da HashAlgorithm)
Proprietà pubblicaOutputBlockSizeUna volta sottoposto a override in una classe derivata, ottiene la dimensione di un blocco di output. (Ereditato da HashAlgorithm)
In alto

  NomeDescrizione
Metodo pubblicoClearLibera tutte le risorse utilizzate da HashAlgorithm classe. (Ereditato da HashAlgorithm)
Metodo pubblicoComputeHash(Byte[])calcola il valore hash per la matrice di byte specificata. (Ereditato da HashAlgorithm)
Metodo pubblicoComputeHash(Stream)calcola il valore hash per specificato Stream oggetto. (Ereditato da HashAlgorithm)
Metodo pubblicoComputeHash(Byte[], Int32, Int32)Calcola il valore hash per l'area specificata di una matrice di byte specificata. (Ereditato da HashAlgorithm)
Metodo pubblicoMembro staticoCreate()Consente di creare un'istanza dell'implementazione predefinita dell'algoritmo hash MD5.
Metodo pubblicoMembro staticoCreate(String)Consente di creare un'istanza dell'implementazione specificata dell'algoritmo hash MD5.
Metodo pubblicoDispose()Libera tutte le risorse utilizzate dall'istanza corrente di HashAlgorithm classe. (Ereditato da HashAlgorithm)
Metodo protettoDispose(Boolean)Rilascia risorse non gestite utilizzate da HashAlgorithm e facoltativamente dealloca risorse gestite. (Ereditato da HashAlgorithm)
Metodo pubblicoEquals(Object) Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object)
Metodo protettoFinalize 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)
Metodo pubblicoGetHashCode Funge da funzione hash per un particolare tipo. (Ereditato da Object)
Metodo pubblicoGetType Ottiene il Type dell'istanza corrente. (Ereditato da Object)
Metodo protettoHashCoreUna volta sottoposto a override in una classe derivata da, i dati della route scritto nell'oggetto nell'algoritmo hash per calcolare il valore hash. (Ereditato da HashAlgorithm)
Metodo protettoHashFinalUna volta sottoposto a override in una classe derivata, viene completato il calcolo di hash dopo che gli ultimi dati vengono elaborati dall'oggetto flusso di crittografia. (Ereditato da HashAlgorithm)
Metodo pubblicoInitializeInizializza un'implementazione di HashAlgorithm classe. (Ereditato da HashAlgorithm)
Metodo protettoMemberwiseClone Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object)
Metodo pubblicoToString Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object)
Metodo pubblicoTransformBlockCalcola il valore hash per l'area specificata di una matrice di byte di input e copia area specificata per la matrice di byte di input all'area specificata di una matrice di byte di output. (Ereditato da HashAlgorithm)
Metodo pubblicoTransformFinalBlockCalcola il valore hash per l'area specificata di una matrice di byte specificata. (Ereditato da HashAlgorithm)
In alto

  NomeDescrizione
Campo protettoHashSizeValueRappresenta la dimensione, in bit, il codice hash calcolato. (Ereditato da HashAlgorithm)
Campo protettoHashValueRappresenta il valore del codice hash calcolato. (Ereditato da HashAlgorithm)
Campo protettoStateRappresenta lo stato del calcolo hash. (Ereditato da HashAlgorithm)
In alto

Le funzioni hash associano stringhe binarie di lunghezza arbitraria a piccole stringhe binarie di lunghezza fissa. Una delle proprietà della funzione hash di crittografia è quella di non consentire, da un punto di vista computazionale, l'individuazione di due input distinti con hash dello stesso valore; vale a dire, gli hash di due insiemi di dati devono essere uguali se sono uguali anche i corrispondenti dati. Piccole variazioni ai dati producono variazioni imprevedibili di ampia portata nell'hash.

La dimensione dell'hash per l'algoritmo MD5 è di 128 bit.

I metodi ComputeHash della classe MD5 restituiscono l'hash come matrice di 16 byte. Si noti che alcune implementazioni MD5 producono un hash con formattazione esadecimale di 32 caratteri. Per interagire con questo tipo di implementazioni, formattare il valore restituito dei metodi ComputeHash come valore esadecimale.

NotaNota

Le più recenti funzioni hash, quali algoritmi hash algorithm SHA-256 e SHA-512, sono disponibili. Utilizzare la classe SHA256 o la classe SHA512 alla classe MD5. Utilizzare MD5 solo per la compatibilità con applicazioni legacy e i dati.

Nell'esempio di codice riportato di seguito viene calcolato il valore hash MD5 di una stringa e viene restituito l'hash come stringa con formattazione esadecimale di 32 caratteri. La stringa hash creata mediante questo esempio di codice è compatibile con tutte le funzioni hash MD5 (o tutte le piattaforme) che consentono la creazione di un stringa hash con formattazione esadecimale di 32 caratteri.


using System;
using System.Security.Cryptography;
using System.Text;

namespace MD5Sample
{
    class Program
    {
        static void Main(string[] args)
        {
            string source = "Hello World!";
            using (MD5 md5Hash = MD5.Create())
            {
                string hash = GetMd5Hash(md5Hash, source);

                Console.WriteLine("The MD5 hash of " + source + " is: " + hash + ".");

                Console.WriteLine("Verifying the hash...");

                if (VerifyMd5Hash(md5Hash, source, hash))
                {
                    Console.WriteLine("The hashes are the same.");
                }
                else
                {
                    Console.WriteLine("The hashes are not same.");
                }
            }



        }
        static string GetMd5Hash(MD5 md5Hash, string input)
        {

            // Convert the input string to a byte array and compute the hash.
            byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input));

            // Create a new Stringbuilder to collect the bytes
            // and create a string.
            StringBuilder sBuilder = new StringBuilder();

            // Loop through each byte of the hashed data 
            // and format each one as a hexadecimal string.
            for (int i = 0; i < data.Length; i++)
            {
                sBuilder.Append(data[i].ToString("x2"));
            }

            // Return the hexadecimal string.
            return sBuilder.ToString();
        }

        // Verify a hash against a string.
        static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash)
        {
            // Hash the input.
            string hashOfInput = GetMd5Hash(md5Hash, input);

            // Create a StringComparer an compare the hashes.
            StringComparer comparer = StringComparer.OrdinalIgnoreCase;

            if (0 == comparer.Compare(hashOfInput, hash))
            {
                return true;
            }
            else
            {
                return false;
            }
        }

    }
}

// This code example produces the following output:
//
// The MD5 hash of Hello World! is: ed076287532e86365e841e92bfc50d8c.
// Verifying the hash...
// The hashes are the same.


.NET Framework

Supportato in: 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Supportato in: 4, 3.5 SP1

Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (ruoli di base del server non supportati), Windows Server 2008 R2 (ruoli di base del server supportati con SP1 o versione successiva, Itanium non supportato)

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Qualsiasi membro pubblico static (Shared in Visual Basic) di questo tipo è thread-safe. I membri di istanza non sono garantiti come thread-safe.

Aggiunte alla community

AGGIUNGI
Microsoft sta conducendo un sondaggio in linea per comprendere l'opinione degli utenti in merito al sito Web di MSDN. Se si sceglie di partecipare, quando si lascia il sito Web di MSDN verrà visualizzato il sondaggio in linea.

Si desidera partecipare?
Mostra:
© 2014 Microsoft