Zum Inhalt springen

Hash-Generator

Berechnet MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA3-256 und BLAKE3 für Text oder Datei in einem Durchgang und vergleicht mit einer veröffentlichten Prüfsumme.

Eingabeart

Berechnungsalgorithmen
Ausgabeformat

Hash-Ergebnisse

  • MD5
  • SHA-1
  • SHA-256
  • SHA-384
  • SHA-512

Dateien werden nur auf diesem Gerät verarbeitet und nie auf einen Server hochgeladen. So funktioniert es

Der Text hello wird in seinen SHA-256-Hash umgewandelt

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

  1. 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.
  2. 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.“
  3. Wähle unter Ausgabeformat zwischen „Hex (Kleinbuchstaben)“, „Hex (Großbuchstaben)“ und „Base64“.
  4. Unter Hash-Ergebnisse steht für jeden eingeschalteten Algorithmus eine Zeile mit seinem Wert.
  5. 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 hello ist 2cf24dba.... Hängt am Ende ein Zeilenumbruch, ergibt hello dagegen 5891b5b522d5df086d0ff0b110fbd9d21bb4fc7163af34d08286a2e846f6be03. Genau diesen zweiten Wert liefert im Terminal echo 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.

Quellen

Häufige Fragen

Ich habe nichts eingegeben, trotzdem stehen Hashwerte da. Ist das ein Fehler?

Nein. Ist das Textfeld leer, zeigt das Tool die Hashes einer Eingabe mit der Länge 0. Für MD5 ist das d41d8cd98f00b204e9800998ecf8427e, für SHA-256 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855. Begegnet dir einer dieser Werte anderswo, wurde dort eine leere Datei oder ein leerer String gehasht.

Der Wert von der Download-Seite sieht für mich gleich aus, trotzdem heißt es „Stimmt mit keinem berechneten Hash überein.“

Prüfe drei Dinge. Erstens muss der passende Algorithmus unter „Berechnungsalgorithmen“ eingeschaltet sein, denn mit abgeschalteten Algorithmen wird nicht verglichen. Zweitens darf nur der Hashwert im Feld stehen. Ein Präfix wie „sha256:“ oder ein angehängter Dateiname führt dazu, dass nichts passt. Drittens muss der Wert vollständig sein. Mit den ersten paar Stellen allein vergleicht das Tool nicht.

Was passiert, wenn ich mitten in der Berechnung einer Datei einen Algorithmus ein- oder ausschalte?

Die laufende Berechnung wird verworfen und die Datei von vorn gelesen. Bei großen Dateien geht es deshalb schneller, erst die Algorithmen festzulegen und dann die Datei zu laden. Das „Ausgabeformat“ kannst du dagegen jederzeit wechseln: Dabei werden die fertigen Werte nur anders geschrieben, neu gerechnet wird nicht.

Kann ich mehrere Dateien auf einmal laden?

Es wird immer nur eine Datei berechnet. Ziehst du mehrere hinein, nimmt das Tool nur die erste. Lädst du danach eine andere Datei, ersetzt ihr Ergebnis das vorige.

Darf ich Passwörter mit SHA-256 hashen und so speichern?

Besser nicht. OWASP erklärt, dass schnelle Hashes wie SHA-256 für das Speichern von Passwörtern ungeeignet sind: Was sich schnell berechnen lässt, erlaubt auch einem Angreifer, in kurzer Zeit sehr viele Kandidaten durchzuprobieren. Für Passwörter gibt es eigene, absichtlich langsame Funktionen wie Argon2id, scrypt und bcrypt. Die Hashes aus diesem Tool sind für Zwecke wie die Dateiprüfung gedacht.

Kann ich mit MD5 oder SHA-1 die Echtheit einer Datei prüfen?

MD5 und SHA-1 begegnen einem als Prüfsumme bis heute, verlassen kann man sich auf sie aber nicht mehr, sobald jemand absichtlich manipulieren könnte. Es ist nämlich bekannt, wie sich eine „Kollision“ herstellen lässt: zwei verschiedene Eingaben mit demselben Hashwert. Das NIST hält fest, dass sich mit heutigen Rechnern gefälschte Nachrichten erzeugen lassen, die denselben SHA-1-Hash ergeben wie das Original. Es empfiehlt deshalb, SHA-1 bis zum 31. Dezember 2030 schrittweise abzulösen und auf SHA-2 oder SHA-3 umzusteigen. • Geht es nur darum, ob eine Datei bei der Übertragung beschädigt wurde, reichen MD5 und SHA-1 weiterhin. • Wo Fälschungen ausgeschlossen sein müssen, etwa bei digitalen Signaturen und Zertifikaten, nimmt man SHA-256 oder stärker. • Veröffentlicht ein Anbieter MD5 und SHA-256 nebeneinander, prüfe mit SHA-256.

Verwendete Open-Source-Software: hash-wasm (MIT)

Zuletzt aktualisiert: