Was ist SHA-256? Funktionsweise, MD5 vs. SHA-256, Prüfsummen

SHA-256 ist eine kryptografische Hashfunktion, die jede Eingabe, von einem einzelnen Buchstaben bis zu einer mehrere Gigabyte großen Datei, in einen festen 256-Bit-Wert umwandelt, meist geschrieben als 64 Hexadezimalzeichen. Sie gehört zur SHA-2-Familie, die das NIST 2002 in FIPS 180-2 veröffentlicht hat. Dieselbe Eingabe ergibt immer denselben Hash, und aus dem Hash lässt sich die Eingabe nicht zurückgewinnen.

Kostenlos ausprobieren: Hash-Text Online Kostenlos und ohne Anmeldung nutzbar.

Was ist SHA-256 also im Alltag? Vor allem ein Nachweis, dass sich Daten nicht verändert haben: Download-Prüfsummen, TLS-Zertifikate, Git, Bitcoin und signierte API-Anfragen beruhen darauf. Dieser Leitfaden erklärt, wie SHA-256 funktioniert, wie sich MD5 vs. SHA-256 unterscheiden, was eine Prüfsumme ist und wie Sie eine SHA-256-Prüfsumme unter Windows, macOS und Linux prüfen. Jeder Hash unten wurde per Code berechnet und doppelt kontrolliert. Zum Ausprobieren fügen Sie die Beispiele in den kostenlosen Hash-Generator ein.

Was ist SHA-256?

SHA steht für Secure Hash Algorithm. SHA-2 wurde von der NSA entworfen und vom NIST standardisiert, zuerst in FIPS 180-2 (2002) und heute in FIPS 180-4. Die Familie hat mehrere Mitglieder, benannt nach ihrer Ausgabelänge: SHA-224, SHA-256, SHA-384 und SHA-512 sowie SHA-512/224 und SHA-512/256. SHA-256 ist das am weitesten verbreitete davon.

Ein Hash funktioniert wie ein Fingerabdruck für Daten. Hier ein SHA-256-Hash-Beispiel für das Wort „hello“ und für eine leere Eingabe:

SHA-256("hello") = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
SHA-256("")      = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855

Beide Ergebnisse sind gleich lang, denn die Ausgabe hat immer 256 Bit. Das sind 32 Byte, und da eine Hexziffer 4 Bit fasst, ergibt das 256 ÷ 4 = 64 Hexzeichen.

So funktioniert SHA-256 in Kürze

  1. Auffüllen. An die Nachricht werden ein 1-Bit, dann Nullen und schließlich ihre ursprüngliche Länge als 64-Bit-Zahl angehängt, sodass die Gesamtlänge ein Vielfaches von 512 Bit ist.
  2. Blöcke. Die aufgefüllte Nachricht wird in 512-Bit-Blöcke zerlegt.
  3. Kompression. Jeder Block durchläuft 64 Runden einfacher Operationen auf 32-Bit-Wörtern: Bitrotationen, XOR, AND und Addition modulo 2³². Diese Runden mischen den Block in einen internen Zustand aus acht 32-Bit-Wörtern (8 × 32 = 256 Bit).
  4. Ausgabe. Nach dem letzten Block ist der Zustand der Hash.

Jeder Block verändert den Zustand, mit dem der nächste Block beginnt. Deshalb wirkt sich eine Änderung an beliebiger Stelle der Eingabe auf das Ergebnis aus.

Die wichtigsten Eigenschaften von SHA-256

Den Lawineneffekt sieht man leicht. „hello“ und „Hello“ unterscheiden sich in einem Buchstaben, und die Buchstaben h (01101000) und H (01001000) unterscheiden sich in nur einem Bit:

SHA-256("hello") = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
SHA-256("Hello") = 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969

Die beiden Hashes unterscheiden sich in 125 ihrer 256 Bit, nahe an der Hälfte, die man bei zufälliger Ausgabe erwartet, und in 61 der 64 Hexzeichen.

Eine Grenze: Urbildresistenz schützt unvorhersehbare Daten, nicht kurze, erratbare Zeichenketten. Der Hash von „hello“ steht in jeder Online-Nachschlagetabelle, weil jeder gängige Wörter hashen und die Ergebnisse speichern kann.

Was ist eine Prüfsumme?

Eine Prüfsumme (Checksumme) ist ein kurzer Wert, der aus Daten berechnet wird, damit Sie später erkennen, ob sich die Daten verändert haben. Einfache Prüfsummen wie CRC32, die in ZIP-Dateien und Netzwerkpaketen stecken, erkennen versehentliche Fehler wie einen fehlerhaften Download oder eine defekte Festplatte, lassen sich aber absichtlich leicht fälschen.

SHA-256 als Prüfsumme schützt auch vor gezielter Manipulation, denn niemand kann eine veränderte Datei erzeugen, die zum ursprünglichen Wert passt. Eine Bedingung gilt: Der erwartete Hash muss aus einer vertrauenswürdigen Quelle stammen, etwa von der offiziellen HTTPS-Seite des Projekts oder aus einer signierten Prüfsummendatei. Wer die Downloadseite kontrolliert, kann Datei und veröffentlichten Hash gemeinsam austauschen.

Wo SHA-256 eingesetzt wird

MD5 vs. SHA-256 (und SHA-1, SHA-512)

Algorithmus Ausgabe Hexzeichen Veröffentlicht Sicherheitsstatus
MD5 128 Bit 32 1992 (RFC 1321) Gebrochen: praktische Kollisionen seit 2004
SHA-1 160 Bit 40 1995 (FIPS 180-1) Gebrochen: erste öffentliche Kollision 2017
SHA-256 256 Bit 64 2002 (FIPS 180-2) Sicher: keine bekannten Kollisionen
SHA-512 512 Bit 128 2002 (FIPS 180-2) Sicher: keine bekannten Kollisionen

Dieselbe Eingabe durch alle vier:

MD5("hello")     = 5d41402abc4b2a76b9719d911017c592
SHA-1("hello")   = aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
SHA-256("hello") = 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
SHA-512("hello") = 9b71d224bd62f3785d96d46ad3ea3d73319bfbc2890caadae2dff72519673ca72323c3d99ba5c11d7c7acc6e14b8c5da0c4663475c2e5c3adef46f73bcdec043

Was ist MD5? MD5 ist ein älterer 128-Bit-Hash aus dem Jahr 1992. 2004 zeigten Forschende um Xiaoyun Wang, wie man zwei verschiedene Eingaben mit demselben MD5-Hash erzeugt, und spätere Arbeiten machten solche Kollisionen schnell berechenbar. MD5 darf nicht eingesetzt werden, wo jemand absichtlich eine passende Datei konstruieren könnte.

SHA-1 hielt länger. Im Februar 2017 stellten das CWI Amsterdam und Google SHAttered vor: zwei verschiedene PDF-Dateien mit demselben SHA-1-Hash. Das NIST empfiehlt, SHA-1 bis zum 31. Dezember 2030 vollständig zu ersetzen.

SHA-256 hat keinen bekannten praktischen Angriff. Eine Kollisionssuche per Brute Force bräuchte etwa 2¹²⁸ Versuche, weit jenseits dessen, was heutige Computer leisten.

Bei der Wahl MD5 vs. SHA-256 gilt also: Nehmen Sie SHA-256 für alles, was mit Sicherheit zu tun hat. MD5 ist weiterhin in Ordnung, wo niemand Sie täuschen will, etwa um versehentliche Beschädigungen zu erkennen oder doppelte Dateien auf der eigenen Festplatte zu finden.

SHA-256 und SHA-512 sind beide sicher; SHA-256 ist der am breitesten unterstützte Standard. SHA-3 (FIPS 202, 2015) ist ein eigenständiges Design, das als Alternative standardisiert wurde, nicht weil SHA-2 gebrochen wäre.

Hashen ist keine Verschlüsselung

Verschlüsselung, etwa mit AES, ist umkehrbar: Mit dem richtigen Schlüssel erhalten Sie die Originaldaten zurück. Ein Hash hat keinen Schlüssel und keinen Rückweg; er bleibt 256 Bit lang, egal wie groß die Eingabe ist, die Originaldaten stecken also nicht in der Ausgabe. Websites, die behaupten, „SHA-256 zu entschlüsseln“, schlagen nur Hashes gängiger Wörter und Passwörter nach, die sie vorab berechnet haben.

Warum reines SHA-256 für Passwörter falsch ist

SHA-256 ist auf Geschwindigkeit ausgelegt, und genau das ist bei Passwörtern das Problem. Gelangt eine Datenbank mit SHA-256-Passwort-Hashes an die Öffentlichkeit, können Angreifer auf Grafikkarten Milliarden Versuche pro Sekunde testen. Ohne Salt erhalten zudem zwei Nutzer mit demselben Passwort denselben Hash.

Passwörter brauchen eine langsame, gesalzene Passwort-Hashfunktion: Argon2id, scrypt oder bcrypt (oder PBKDF2 mit hoher Iterationszahl). Sie machen jeden Rateversuch teuer. Details zu Salts und dazu, was bei einem Leak gehashter Passwörter passiert, lesen Sie in Was passiert, wenn ein Passwort gehasht wird.

So prüfen Sie eine SHA-256-Prüfsumme

  1. Kopieren Sie den erwarteten SHA-256-Wert von der offiziellen Downloadseite oder aus der Prüfsummendatei.
  2. Berechnen Sie den Hash der heruntergeladenen Datei.
  3. Vergleichen Sie alle 64 Zeichen, nicht nur die ersten paar. Groß- und Kleinschreibung spielt bei Hex keine Rolle.

Stimmen die Werte nicht überein, löschen Sie die Datei und laden Sie sie erneut von der offiziellen Quelle herunter.

Windows

In der Eingabeaufforderung:

certutil -hashfile ubuntu.iso SHA256

Geben Sie immer SHA256 an: Ohne diese Angabe verwendet certutil SHA-1. In PowerShell nutzt Get-FileHash standardmäßig SHA-256 und kann den Vergleich für Sie übernehmen:

Get-FileHash .\ubuntu.iso
(Get-FileHash .\ubuntu.iso).Hash -eq "paste-the-expected-hash-here"

Die zweite Zeile gibt True oder False aus; -eq ignoriert Groß- und Kleinschreibung, daher passt die großgeschriebene Ausgabe zu einer kleingeschriebenen Prüfsumme.

macOS

shasum -a 256 ubuntu.iso
shasum -a 256 -c ubuntu.iso.sha256

Die erste Zeile gibt den Hash aus. Die zweite prüft ihn gegen eine Prüfsummendatei, die den Hash, zwei Leerzeichen und den Dateinamen enthält.

Linux

sha256sum ubuntu.iso
sha256sum -c SHA256SUMS --ignore-missing

Mit -c liest sha256sum die Prüfsummendatei und gibt ubuntu.iso: OK oder FAILED aus. --ignore-missing überspringt Einträge für Dateien, die Sie nicht heruntergeladen haben.

Eine typische Falle beim Hashen von Text in der Kommandozeile: echo "hello" | sha256sum liefert 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03 statt des Werts 2cf24d… von oben, weil echo einen Zeilenumbruch anhängt. Mit printf 'hello' | sha256sum hashen Sie genau fünf Byte.

Im Browser

Der MD5- und SHA-256-Hash-Generator berechnet MD5, SHA1, SHA224, SHA256, SHA384, SHA512, Keccak-256 und RIPEMD160 gleichzeitig, im Modus Text oder Datei.

Zwei Grenzen: Die ganze Datei wird zuerst in den Arbeitsspeicher geladen, für ISO-Dateien mit mehreren Gigabyte sind die Kommandozeilen-Tools oben daher die bessere Wahl. Und die Zeile mit der Bezeichnung SHA3 ist Keccak-512 mit dem ursprünglichen Padding, das sich von NIST SHA3-512 unterscheidet.

FAQ

Lässt sich SHA-256 entschlüsseln oder umkehren?

Nein. SHA-256 ist eine Einwegfunktion ohne Schlüssel. „SHA-256-Entschlüsseler“ finden nur Eingaben, die bereits in ihren Nachschlagetabellen stehen. Das klappt bei gängigen Wörtern und schwachen Passwörtern, aber nicht bei Zufallsdaten.

Ist SHA-256 noch sicher?

Ja. Es gibt keinen bekannten praktischen Kollisions- oder Urbildangriff auf SHA-256, und das NIST lässt es weiterhin zu. Selbst ein großer Quantencomputer mit dem Grover-Algorithmus würde nach heutigem Wissen den Aufwand für ein Urbild nur von etwa 2²⁵⁶ auf etwa 2¹²⁸ Operationen senken.

Warum ist ein SHA-256-Hash 64 Zeichen lang?

Der Hash hat 256 Bit. Hexadezimal geschrieben steht jedes Zeichen für 4 Bit, also 256 ÷ 4 = 64 Zeichen. Derselbe Wert umfasst 32 Byte oder 44 Zeichen in Base64.

Was ist der Unterschied zwischen SHA-2 und SHA-256?

SHA-2 ist die in FIPS 180-4 definierte Familie von Hashfunktionen. SHA-256 ist ein Mitglied davon, neben SHA-224, SHA-384 und SHA-512. Wenn Software „SHA-2“ ohne Größenangabe nennt, ist meist SHA-256 gemeint.

Können zwei Dateien denselben SHA-256-Hash haben?

Theoretisch ja, denn es gibt unendlich viele mögliche Dateien und nur 2²⁵⁶ mögliche Hashes. In der Praxis hat noch niemand zwei verschiedene Eingaben mit demselben SHA-256-Hash gefunden, daher gelten übereinstimmende Hashes als Nachweis, dass die Dateien identisch sind.

Kostenlos ausprobieren: Hash-Text Online Kostenlos und ohne Anmeldung nutzbar.