(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

HashAlgorithm.ComputeHash-Methode (Byte[])

Errechnet den Hashwert für das angegebene Bytearray.

Namespace:  System.Security.Cryptography
Assembly:  mscorlib (in mscorlib.dll)
public byte[] ComputeHash(
	byte[] buffer
)

Parameter

buffer
Typ: System.Byte[]
Die Eingabe, für die der Hashcode berechnet werden soll.

Rückgabewert

Typ: System.Byte[]
Der errechnete Hashcode.
AusnahmeBedingung
ArgumentNullException

buffer hat den Wert null.

ObjectDisposedException

Das Objekt wurde bereits freigegeben.

Die Größe des Hashwerts hängt vom Hashalgorithmus ab, für den es berechnet wird. Die Größe des Hashs für den HMACSHA384-Algorithmus beträgt z. B. 384 Bits, und die Größe des Hashs für den HMACSHA256-Algorithmus beträgt 256 Bits. Sie können die Größe des Hashs in Bits abrufen, indem Sie die HashSize-Eigenschaft aufrufen. Weitere Informationen zu Hashcodes finden Sie unter Gewährleisten der Datenintegrität über Hashcodes.

Im folgenden Beispiel wird der MD5-Hashwert für eine Zeichenfolge berechnet und der Hash als Zeichenfolge in Hexadezimalformat mit einer Länge von 32 Zeichen zurückgegeben. Die in diesem Codebeispiel erstellte Hashzeichenfolge ist mit allen MD5-Hashfunktionen (auf allen Plattformen) kompatibel, bei denen eine Hashzeichenfolge in Hexadezimalformat mit einer Länge von 32 Zeichen erzeugt wird.


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

class Example
{
    // Hash an input string and return the hash as
    // a 32 character hexadecimal string.
    static string getMd5Hash(string input)
    {
        // Create a new instance of the MD5CryptoServiceProvider object.
        MD5 md5Hasher = MD5.Create();

        // Convert the input string to a byte array and compute the hash.
        byte[] data = md5Hasher.ComputeHash(Encoding.Default.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(string input, string hash)
    {
        // Hash the input.
        string hashOfInput = getMd5Hash(input);

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

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


    static void Main()
    {
        string source = "Hello World!";

        string hash = getMd5Hash(source);

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

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

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

    }
}
// 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

Unterstützt in: 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Unterstützt in: 4, 3.5 SP1

Windows 7, Windows Vista SP1 oder höher, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core wird nicht unterstützt), Windows Server 2008 R2 (Server Core wird mit SP1 oder höher unterstützt), Windows Server 2003 SP2

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen für .NET Framework.

Datum

Versionsgeschichte

Grund

März 2011

Ein Beispiel wurde hinzugefügt.

Kundenfeedback.

März 2011

Bemerkungen zur Größe des Hashwerts und dazu, wo weitere Informationen abgerufen werden können, wurden hinzugefügt.

Kundenfeedback.

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.