Was ist ein Hash?
Ein Hash ist eine Rechnung, die Daten beliebiger Länge auf einen Wert fester Länge eindampft. Dieselbe Eingabe liefert immer denselben Wert, und schon die kleinste Änderung an der Eingabe ergibt einen völlig anderen. Aus dem Ergebnis lassen sich die ursprünglichen Daten nicht zurückgewinnen.
Gibst du im Textfeld hello ein, lautet der SHA-256-Wert 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824. Schreibst du nur den ersten Buchstaben groß, also Hello, kommt 185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969 heraus, und mit dem ersten Wert hat das nichts mehr gemein. Deshalb reicht es, zwei Hashwerte nebeneinanderzuhalten, um zu wissen, ob zwei Eingaben gleich sind. Einen Hashwert, der diesem Zweck dient, nennt man auch Prüfsumme.
So benutzt du das Tool
- Wähle unter Eingabeart zwischen „Text“ und „Datei“. Text kommt ins Feld „Text zum Hashen“, eine Datei ziehst du hinein oder wählst sie aus. Der Dateityp spielt keine Rolle.
- Schalte unter Berechnungsalgorithmen ein, was du brauchst. Jeder Klick auf einen Button schaltet ihn ein oder aus, mehrere gleichzeitig sind möglich. Ist keiner mehr aktiv, erscheint der Hinweis „Wähle mindestens einen Algorithmus aus.“
- Wähle unter Ausgabeformat zwischen „Hex (Kleinbuchstaben)“, „Hex (Großbuchstaben)“ und „Base64“.
- Unter Hash-Ergebnisse steht für jeden eingeschalteten Algorithmus eine Zeile mit seinem Wert.
- Hast du einen Vergleichswert, füge ihn ins Feld Mit einem erwarteten Hash vergleichen ein.
| Algorithmus | Hashlänge | Hex-Stellen | Von Anfang an eingeschaltet |
|---|---|---|---|
| MD5 | 128 Bit | 32 | Ja |
| SHA-1 | 160 Bit | 40 | Ja |
| SHA-256 | 256 Bit | 64 | Ja |
| SHA-384 | 384 Bit | 96 | Ja |
| SHA-512 | 512 Bit | 128 | Ja |
| SHA3-256 | 256 Bit | 64 | Nein |
| BLAKE3 | 256 Bit | 64 | Nein |
SHA3-256 ist so lang wie SHA-256, gehört aber zur SHA-3-Familie, die anders aufgebaut ist als SHA-2. Für dieselbe Eingabe kommen deshalb verschiedene Werte heraus. BLAKE3 ist kein Standard des US-amerikanischen National Institute of Standards and Technology (NIST). In Base64 wird derselbe Wert kürzer: MD5 hat dann 24 Zeichen, SHA-256 hat 44.
Prüfen, ob ein Download dem Original entspricht
Auf manchen Download-Seiten steht neben der Datei ein Hashwert, etwa „SHA-256: 3a7bd3e2…“. Stell die Eingabeart auf „Datei“, lade die heruntergeladene Datei und füge den Wert ins Feld „Mit einem erwarteten Hash vergleichen“ ein.
- Passt er zu einem der eingeschalteten Algorithmen, nennt dir das Tool den Treffer, zum Beispiel „Stimmt mit SHA-256 überein.“, und hebt die zugehörige Zeile in der Ergebnisliste hervor. Du musst also nicht wissen, von welchem Algorithmus der eingefügte Wert stammt.
- Gibt es keinen Treffer, erscheint „Stimmt mit keinem berechneten Hash überein.“ Lade die Datei dann noch einmal herunter.
Beim Vergleich werden Groß- und Kleinschreibung der Hex-Ziffern, ein vorangestelltes 0x sowie Leerzeichen, Doppelpunkte (:) und Bindestriche (-) im Wert ignoriert. Eine Schreibweise in Zweiergruppen wie 5D:41:40:2A:... kannst du also unverändert einfügen. Base64-Werte erkennt das Tool unabhängig vom gerade gewählten Ausgabeformat, dort muss aber auch die Groß- und Kleinschreibung exakt stimmen.
Ein Treffer bedeutet: Deine Datei ist dieselbe, aus der der Anbieter den Hash berechnet hat. Wurde der Hashwert auf der Download-Seite selbst ausgetauscht, fällt das bei dieser Prüfung nicht auf.
Wenn der Text-Hash von einem anderen Tool abweicht
Text wird zuerst in UTF-8-Bytes umgewandelt und dann gehasht. Auch ein Zeichen, das man nicht sieht, geht in den Wert ein. Weicht das Ergebnis von einem anderen Tool ab, liegt es deshalb meistens an einem Zeilenumbruch.
- Der SHA-256-Wert von
helloist2cf24dba.... Hängt am Ende ein Zeilenumbruch, ergibthellodagegen5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03. Genau diesen zweiten Wert liefert im Terminalecho hello | sha256sum, denn echo hängt einen Zeilenumbruch an. - Auch eine im Windows-Editor gespeicherte Textdatei und derselbe Text, hier eingefügt, können verschiedene Werte ergeben. Ist die Datei nicht in UTF-8 kodiert oder nutzt sie andere Zeilenenden, sind es andere Bytes. Brauchst du den Hash der Datei, dann füge nicht ihren Inhalt ein, sondern lade sie über „Datei“.
So geht das Tool mit großen Dateien um
Eine Datei wird nicht komplett in den Arbeitsspeicher geladen, sondern in Stücken von 16 MiB gelesen und dabei gehasht. Alle eingeschalteten Algorithmen bekommen dasselbe Stück gleichzeitig, die Datei wird also nicht für jeden Algorithmus neu gelesen. Währenddessen siehst du den Fortschrittsbalken „Hash wird berechnet …“, und nach einem Abbruch steht dort „Berechnung abgebrochen.“
Gerechnet wird mit der Bibliothek hash-wasm, die in WebAssembly umgesetzt ist.
