Toolyard

Was ist ein Hash? MD5, SHA-1 und SHA-256 erklärt

Ein Fingerabdruck für Daten

Eine Hashfunktion nimmt eine beliebige Eingabe (ein Wort, ein Dokument, ein 4-GB-Video) und macht daraus eine kurze Zeichenfolge fester Länge, den Hash, auch Digest oder Prüfsumme. Dieselbe Eingabe ergibt immer denselben Hash, und schon eine winzige Änderung ergibt einen völlig anderen:

EingabeSHA-256-Hash
hello2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824
Hello185f8db32271fe25f561a6fc938b2e264306ec304eda518007d1764826381969
hello!ce06092fb948d9ffac7d1a376e404b26b7575bcc11ee05a4615fef4fec3a308b

Ein Großbuchstabe oder ein Ausrufezeichen ändert jedes Zeichen des Ergebnisses. Probier es im Hash-Generator aus.

Was eine gute Hashfunktion ausmacht

  • Deterministisch: Dieselbe Eingabe ergibt auf jedem Computer denselben Hash.
  • Einweg: Vom Hash kommt man nicht zurück zur Eingabe.
  • Kollisionsresistent: Es sollte praktisch unmöglich sein, zwei verschiedene Eingaben mit demselben Hash zu finden.
  • Schnell zu berechnen für Prüfsummen, was nützlich ist und zugleich der Grund, warum schnelle Hashes für Passwörter falsch sind (dazu unten mehr).

Hashen ist keine Verschlüsselung

Verschlüsselung funktioniert in beide Richtungen: Mit dem Schlüssel bekommst du das Original zurück. Ein Hash hat keinen Schlüssel und lässt sich nicht umkehren. Er zeigt nur, ob etwas übereinstimmt. Base64 ist wieder etwas anderes: nur eine Kodierung, die jeder dekodieren kann.

Die gängigen Algorithmen

AlgorithmusLängeStatus
MD5128 Bit (32 Hex-Zeichen)Seit 2004 gebrochen; nur noch für versehentliche Beschädigung
SHA-1160 Bit (40 Hex-Zeichen)Gebrochen: Die erste echte Kollision wurde 2017 veröffentlicht
SHA-256256 Bit (64 Hex-Zeichen)Sicher; heute die Standardwahl
SHA-512512 Bit (128 Hex-Zeichen)Sicher; auf 64-Bit-Computern oft schneller als SHA-256

Hier das Wort hello in jedem:

  • MD5: 5d41402abc4b2a76b9719d911017c592
  • SHA-1: aaf4c61ddcc5e8a2dabede0f3b482cd9aea9434d
  • SHA-256: 2cf24dba5fb0a30e26e83b2ac5b9e29e1b161e5c1fa7425e73043362938b9824

Was „gebrochen“ bei MD5 und SHA-1 heißt

Bei MD5 und SHA-1 können Forscher gezielt zwei verschiedene Dateien mit demselben Hash erzeugen. Ein Angreifer könnte so eine harmlose Datei gegen eine schädliche mit passender Prüfsumme tauschen oder ein signiertes Dokument fälschen. Umkehrbar sind beide nicht, und zufällige Beschädigung ändert den Hash weiterhin, eine MD5-Prüfsumme erkennt also noch einen abgebrochenen Download. Sie kann nur nicht beweisen, dass niemand die Datei manipuliert hat.

SHA-256 und SHA-512 gehören zur 2001 veröffentlichten SHA-2-Familie, und es ist kein praktischer Angriff auf sie bekannt. SHA-3, 2015 standardisiert, ist ein anderes Design, das als Reserve bereitsteht.

Wo Hashes verwendet werden

  • Downloads prüfen: Entwickler veröffentlichen den SHA-256 ihrer Dateien; stimmt deiner überein, ist die Datei identisch. Siehe Prüfsumme prüfen.
  • Digitale Signaturen und HTTPS-Zertifikate: Das Dokument oder Zertifikat wird gehasht, und der Hash wird signiert.
  • Git: Jeder Commit und jede Datei wird über ihren Hash identifiziert. Git nutzt seit Langem SHA-1 und unterstützt inzwischen auch SHA-256.
  • Bitcoin und andere Blockchains: Die Blöcke sind mit SHA-256 verkettet.
  • Doppelte Dateien finden: Zwei Dateien mit demselben SHA-256 sind dieselbe Datei.

Hashes und Passwörter

Websites sollten nie dein Passwort speichern, nur einen Hash davon; beim Anmelden hashen sie deine Eingabe und vergleichen. SHA-256 ist dafür aber das falsche Werkzeug: Es ist so schnell, dass ein Angreifer mit einer geleakten Datenbank Milliarden Versuche pro Sekunde machen kann. Passwörter brauchen langsames Hashing mit Salt, das dafür gemacht ist, etwa bcrypt, scrypt oder Argon2. Ein Salt ist ein Zufallswert, der vor dem Hashen an jedes Passwort gehängt wird, damit zwei Menschen mit demselben Passwort verschiedene Hashes bekommen.

Ausprobieren

Der Hash-Generator berechnet MD5, SHA-1, SHA-256, SHA-384 und SHA-512 von beliebigem Text oder Dateien gleichzeitig, in deinem Browser, und vergleicht sie mit einer veröffentlichten Prüfsumme.

Tools in dieser Anleitung

Weitere Anleitungen

HEIC-Dateien unter Windows öffnenPDF-Dateigröße verkleinernStandortdaten aus Fotos entfernenTon aus einem Video extrahierenWLAN-QR-Code erstellenPDF unterschreibenPrüfsumme einer Datei prüfen (SHA-256)PNG, JPG oder WebP: Welches Bildformat?PDF-Dateien zusammenfügenText aus einem Bild kopierenJPG in PDF umwandelnPDF in JPG umwandelnPDF teilen oder Seiten herausziehenPDF dauerhaft drehenSeitenzahlen zu einer PDF hinzufügenWasserzeichen in eine PDF einfügenHEIC auf dem Mac in JPG umwandelnWebP in JPG umwandelnBilddateien verkleinernVideo in GIF umwandelnWAV in MP3 umwandelnEin starkes Passwort erstellenCelsius in Fahrenheit umrechnenGB oder GiB: Warum deine Festplatte weniger Platz zeigtProzente berechnenTage zwischen zwei Daten berechnenWas ist ein Unix-Zeitstempel?Zwei Textdateien vergleichenWörter in einem Dokument zählenQR-Code aus einem Screenshot oder Bild scannenFoto auf 20 KB komprimieren (oder jede andere Größe)Hintergrund aus einem Foto entfernenMikrofon testenBildschirm auf tote Pixel prüfenBildschirm aufnehmenKlingelton fürs iPhone erstellenVideo zum Versenden komprimierenPasswort aus einer PDF entfernenPDF mit einem Passwort schützenPDF-Formular ausfüllenPDF in Word umwandelnGesicht in einem Foto unkenntlich machenBMI berechnenRate einer Baufinanzierung berechnenTermine über Zeitzonen hinweg planenWas ist ein Cron-Ausdruck?Das reverse Komplement einer DNA-Sequenz bildenDNA in Protein übersetzenGenBank in FASTA umwandelnRestriktionsschnittstellen in einer DNA-Sequenz findenZwei DNA- oder Proteinsequenzen alignierenPCR-Primer entwerfen und prüfenMolare Masse berechnenReaktionsgleichungen ausgleichenEine Lösung bestimmter Molarität ansetzenVerdünnungen berechnen (C1V1 = C2V2)pH-Wert berechnenDNA-Konzentration aus der A260 berechnenInsert-Menge für eine Ligation berechnenRPM in g (RCF) umrechnenZellen mit einer Zählkammer zählenEin Punnett-Quadrat verwendenEin Budget mit der 50/30/20-Regel aufstellenSchneeball- oder Lawinenmethode beim SchuldenabbauWie viel Geld brauche ich für die Rente?Gehalt in Stundenlohn umrechnenGewinnmarge und AufschlagMehrwertsteuer und Umsatzsteuer berechnenEine Rechnung schreibenWie viel Haus kann ich mir leisten?Den Farbcode von Widerständen lesenDen Vorwiderstand für eine LED wählenSpannungsfall in einem Kabel berechnenWie viel Beton brauche ich?Wie viel Farbe brauche ich?Ein Subnetz berechnenRegeln für signifikante Stellen