Hash-Generator

Erzeugen Sie MD5- und SHA-Hashes beliebigen Texts und prüfen Sie sie gegen eine erwartete Prüfsumme.

Eingabe
MD5Gebrochen
SHA-1Gebrochen
SHA-256
SHA-384
SHA-512

Was eine Hash-Funktion tatsächlich tut

Eine kryptografische Hash-Funktion nimmt eine Eingabe beliebiger Größe und erzeugt daraus eine Bytefolge fester Länge — einen Digest oder „Hash“. Geben Sie ihr einen einzelnen Buchstaben oder einen ganzen Roman: MD5 liefert immer 16 Bytes, SHA-256 immer 32. Dieselbe Eingabe ergibt stets denselben Digest, und ein einziges geändertes Bit irgendwo in der Eingabe kippt etwa die Hälfte der Ausgabebits — deshalb haben zwei fast identische Dateien völlig unzusammenhängende Hashes.

Entscheidend ist, dass die Funktion nur in eine Richtung läuft. Den Hash einer Datei zu berechnen geht schnell; die Datei aus dem Hash zurückzugewinnen ist nicht bloß langsam, sondern prinzipiell unmöglich, denn eine Ausgabe fester Länge kann keine unbegrenzte Eingabe kodieren. Ein Hash ist ein Fingerabdruck, keine verschlüsselte Kopie — es gibt nichts zu entschlüsseln.

Wofür Hashes tatsächlich verwendet werden

  • Downloads prüfen: Ein Projekt veröffentlicht den SHA-256 einer Version, Sie hashen die empfangene Datei, und übereinstimmende Digests bedeuten, dass die Bytes unversehrt angekommen sind.
  • Änderungen erkennen: Versionsverwaltung, Backup und Deduplizierung vergleichen Hashes statt ganzer Dateien, weil 32 Bytes zu vergleichen weit billiger ist als Gigabytes.
  • Subresource Integrity: Eine Webseite pinnt den Base64-Hash eines Skripts, das sie von einem CDN lädt, und der Browser führt die Datei bei Abweichung nicht aus.
  • Passwörter speichern — aber mit einer eigens dafür gebauten langsamen Funktion, niemals mit einem einfachen Hash. Siehe unten.

Beachten Sie das Gemeinsame: Der Hash ist ein kompakter Stellvertreter für etwas Größeres und beantwortet die Frage „Ist das dasselbe, das ich erwartet habe?“, ohne die Sache selbst zu übertragen oder zu speichern.

MD5 und SHA-1 sind gebrochen — was das praktisch bedeutet

Eine Hash-Funktion gilt als gebrochen, sobald sich eine Kollision konstruieren lässt: zwei verschiedene Eingaben mit demselben Digest. MD5-Kollisionen sind seit 2004 auf gewöhnlicher Hardware berechenbar, und 2017 erzeugte der SHAttered-Angriff zwei verschiedene PDF-Dateien mit identischem SHA-1-Hash. Deshalb sind beide Algorithmen in diesem Werkzeug gekennzeichnet.

Die praktische Folge ist enger als „niemals verwenden“. Eine Kollision heißt, dass ein Angreifer, der beide Dateien kontrolliert, eine bösartige Datei auf den Digest einer harmlosen bringen kann. MD5 und SHA-1 können also nicht mehr belegen, dass eine Datei nicht von jemandem mit böser Absicht manipuliert wurde. Gegen zufällige Beschädigung — ein abgebrochener Download, ein gekipptes Bit auf der Platte — taugen sie weiterhin bestens, und Sie werden ihnen in Altsystemen, ETag-Headern und älteren Paketmanifesten weiter begegnen, die niemand neu schreiben wird.

Als Faustregel: Lautet die Frage „Ist das unterwegs beschädigt worden?“, reicht MD5. Lautet sie „Hat das jemand absichtlich ausgetauscht?“, nehmen Sie SHA-256 oder besser.

Speichern Sie damit niemals ein Passwort

MD5, SHA-1 und selbst SHA-256 sind auf Geschwindigkeit ausgelegt, und Geschwindigkeit ist für das Speichern von Passwörtern genau die falsche Eigenschaft. Eine moderne GPU berechnet Milliarden SHA-256-Hashes pro Sekunde; eine gestohlene Datenbank schlicht gehashter Passwörter lässt sich also in gewaltigem Maßstab angreifen — und weil dasselbe Passwort stets denselben Digest ergibt, machen vorberechnete Tabellen es noch billiger.

Passwortspeicherung braucht eine bewusst langsame, gesalzene und speicherintensive Funktion: Argon2id, scrypt oder bcrypt. Sie fügen pro Passwort ein eindeutiges zufälliges Salt hinzu, sodass gleiche Passwörter keinen Digest teilen, und ihr Aufwand ist einstellbar, sodass jeder Rateversuch den Angreifer echte Zeit und echten Speicher kostet. Dieses Werkzeug ist für Prüfsummen und Fingerabdrücke gedacht, nicht für Passwort-Hashing.

Digests lesen und vergleichen

Derselbe Digest lässt sich auf mehr als eine Weise schreiben. Kleingeschriebenes Hexadezimal geben die üblichen Kommandozeilenwerkzeuge aus, und damit werden Sie meist vergleichen:

md5sum file.iso                  # Linux
sha256sum file.iso               # Linux
shasum -a 256 file.iso           # macOS
Get-FileHash file.iso -Algorithm SHA256   # PowerShell (gibt Großbuchstaben aus)
certutil -hashfile file.iso SHA256        # Windows (gibt Großbuchstaben aus)

Die Groß- und Kleinschreibung trägt im Hex keinerlei Bedeutung — PowerShell und certutil schreiben groß, die Unix-Werkzeuge klein, und es ist derselbe Wert. Deshalb ignoriert das Vergleichsfeld hier die Hex-Schreibung. Bei Base64 sieht es anders aus: Es ist eine dichtere Kodierung derselben Bytes, wird von Subresource Integrity und diversen APIs genutzt, und dort *ist* die Schreibung bedeutsam — deshalb wird sie exakt verglichen.

Eine letzte Gewohnheit, die sich lohnt: Vergleichen Sie zwei lange Digests nie mit bloßem Auge. Das menschliche Auge sieht sehr zuverlässig, was es zu sehen erwartet, und dass die ersten und letzten Zeichen übereinstimmen, bedeutet nichts. Fügen Sie den erwarteten Wert ein und lassen Sie den Vergleich exakt sein.

Häufig gestellte Fragen

Wird mein Text an einen Server gesendet?
Nein. Jeder Digest wird in Ihrem Browser berechnet — die SHA-Familie über die Web-Crypto-API und MD5 über JavaScript auf Ihrem eigenen Rechner. Nichts, was Sie eingeben, verlässt Ihr Gerät.
Kann ein Hash umgekehrt werden, um den Originaltext zurückzubekommen?
Nein. Ein Hash ist ein Fingerabdruck fester Länge, keine verschlüsselte Kopie, und das Original lässt sich daraus nicht zurückgewinnen. Seiten, die mit „MD5-Entschlüsselung“ werben, schlagen Ihren Hash lediglich in einer Tabelle bereits berechneter gängiger Eingaben nach — was nur bei kurzem oder vorhersehbarem Text funktioniert.
Warum tragen MD5 und SHA-1 hier eine Warnung?
Weil für beide Kollisionen praktisch machbar sind: Es lassen sich zwei verschiedene Eingaben konstruieren, die sich einen Digest teilen. Damit taugen sie nicht als Beleg, dass eine Datei nicht absichtlich manipuliert wurde — für das Erkennen zufälliger Beschädigung bleiben sie brauchbar.
Welchen Algorithmus sollte ich verwenden?
SHA-256 ist die vernünftige Voreinstellung und das, was die meisten Projekte heute veröffentlichen. SHA-512 ist dafür nicht nennenswert sicherer, aber auf 64-Bit-Hardware schneller. Nutzen Sie MD5 oder SHA-1 nur, wenn etwas außerhalb Ihrer Kontrolle sie bereits verlangt.
Kann ich damit ein Passwort hashen?
Können Sie, aber speichern sollten Sie das Ergebnis nicht. Passwortspeicherung braucht eine langsame, gesalzene Funktion wie Argon2id, scrypt oder bcrypt — schnelle Hashes wie diese sind genau der Grund, warum gestohlene Passwortdatenbanken leicht zu knacken sind.
Warum ändern sich die Hashes, wenn ich ein Leerzeichen oder einen Zeilenumbruch hinzufüge?
Weil Leerraum Teil der Eingabe ist. Ein abschließender Zeilenumbruch ist der häufigste Grund dafür, dass ein Hash nicht wie erwartet passt — aus einem Terminal oder Editor kopierter Text schleppt oft einen mit, den man nicht sieht.
Werden Hebräisch, Arabisch und Emoji korrekt behandelt?
Ja. Text wird vor dem Hashen als UTF-8-Bytes kodiert, wie es alle anderen Werkzeuge ebenfalls tun. „שלום“ oder ein Emoji hier zu hashen ergibt daher denselben Digest wie md5sum oder sha256sum auf einer UTF-8-Datei mit denselben Zeichen.
Warum hasht es Text, aber keine Dateien?
Web Crypto bietet keine Streaming-Digest-API, eine Datei müsste also vollständig in den Speicher gelesen werden, und das handgeschriebene MD5 wäre bei einer großen Datei spürbar langsam. Text-Hashing deckt den häufigen Fall ehrlich ab, statt ein Datei-Hashing anzubieten, das die Seite blockiert.