So funktioniert es
Eine Hashfunktion macht aus beliebig vielen Daten einen kurzen Wert fester Länge. Ändert sich ein einziges Bit der Eingabe, ändert sich das Ergebnis vollständig, und bei SHA-256 kann niemand zwei verschiedene Eingaben mit demselben Wert finden. Deshalb veröffentlichen Download-Seiten einen Hash: Liefert Ihre Kopie denselben, ist es dieselbe Datei, Byte für Byte.
Die Seite nutzt die in Ihrem Browser eingebaute Web Crypto API für SHA-1, SHA-256, SHA-384 und SHA-512 und eine kleine eigene MD5-Implementierung, weil Browser MD5 nicht anbieten. Text wird als UTF-8-Bytes gehasht. Eine Datei wird in den Arbeitsspeicher gelesen und dort gehasht; es wird nichts hochgeladen. Web Crypto braucht die ganze Datei auf einmal, daher liegt die praktische Grenze je nach Gerät bei einigen hundert Megabyte.
Das Prüfsummenfeld akzeptiert einen reinen Hash in Groß- oder Kleinschreibung, durch Leerzeichen oder Doppelpunkte getrennte Gruppen, eine Zeile aus der Ausgabe von sha256sum, eine Zeile im BSD-Stil wie SHA256 (file.iso) = … oder Base64. Es findet den Hash darin und vergleicht ihn mit allen fünf Ergebnissen.
Beispiel
Der Text „abc“ (3 Bytes, ohne Zeilenumbruch) hat den SHA-256-Hash ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad und den MD5-Hash 900150983cd24fb0d6963f7d28e17f72, die Testwerte aus FIPS 180-2 und RFC 1321. Eine leere Eingabe ergibt den SHA-256 e3b0c442…b855: Sehen Sie diesen Wert bei einer Datei, ist die Datei leer.
Fragen
Wofür wird SHA-256 verwendet?
Um zu prüfen, dass Daten genau so sind, wie sie sein sollen. Linux-Distributionen veröffentlichen SHA-256-Summen ihrer ISO-Abbilder, Paketmanager prüfen jedes Paket gegen eine, Git und Docker benennen Inhalte nach ihrem Hash, und TLS-Zertifikate und Code-Signaturen bauen darauf auf. Ein praktikabler Weg, zwei Eingaben mit demselben SHA-256 zu finden, ist nicht bekannt.
Ist MD5 sicher?
Nicht für die Sicherheit. Seit 2004 konnten Forschende verschiedene Dateien mit demselben MD5 erzeugen, und seit der Flame-Schadsoftware 2012 werden solche Kollisionen in echten Angriffen genutzt. MD5 erkennt noch einen versehentlich beschädigten Download, doch wer die Datei ändern kann, kann sie auch passend machen. Vergleichen Sie bei allem, was wichtig ist, SHA-256. SHA-1 ist seit 2017 auf dieselbe Weise gebrochen.
Wie prüfe ich eine ISO-Datei?
Laden Sie das ISO und die vom Projekt veröffentlichte Prüfsumme herunter, am besten von dessen eigener Website per HTTPS. Wählen Sie hier die Datei und fügen Sie die Prüfsumme in das Feld ein: Ein grüner Treffer bedeutet, dass Ihre Kopie identisch ist. Auf einem Server führen Sie sha256sum für die Datei aus und vergleichen, oder Sie nutzen sha256sum -c mit der Datei SHA256SUMS. Bei Projekten, die auch die Prüfsummendatei signieren, prüfen Sie die Signatur mit gpg.
Lässt sich ein Hash umkehren, um den Text zurückzubekommen?
Nein. Ein Hash enthält weit weniger Information als die Eingabe, daher gibt es keinen Weg, die Eingabe daraus zu berechnen. Kurze oder häufige Eingaben lassen sich aber durch Ausprobieren von Kandidaten finden, weshalb Passwörter mit langsamen, gesalzenen Funktionen wie bcrypt oder Argon2 gespeichert werden und nicht mit einem einfachen SHA-256 oder MD5.
Warum weicht mein Hash von dem auf der Kommandozeile ab?
Meist wegen eines Zeilenumbruchs. echo "text" | sha256sum hasht den Text plus einen Zeilenumbruch; lassen Sie ihn mit echo -n oder printf weg. Auch Windows-Zeilenenden (CR LF) und eine Byte-Order-Mark am Dateianfang ändern das Ergebnis. Bei Dateien gilt der Hash immer für die exakten Bytes: Stimmt er hier und in sha256sum überein, ist es dieselbe Datei.