Wie Sie MD5-, SHA-256- und andere Hashes erzeugen

· 9 Min. Lesezeit

Hashing wandelt eine beliebige Eingabe (ein Passwort, eine Datei, eine Nachricht) in eine Zeichenkette fester Länge um. Dieselbe Eingabe ergibt immer denselben Hash, aber selbst eine winzige Änderung der Eingabe ergibt einen komplett anderen Hash. Damit ist Hashing essenziell für Integritätsprüfung, Passwortspeicherung, digitale Signaturen, Blockchain-Beweise und Dutzende weitere Bausteine moderner Informatik. Den richtigen Algorithmus wählen, wissen warum manche gebrochen sind, und die Muster erkennen, die Hashes missbrauchen, macht aus einem Fünf-Sekunden-Werkzeug ein Fundament, auf dem man sicher aufbauen kann.

Eine kurze Geschichte der Hashfunktionen

Hashing als Programmieridee ist Jahrzehnte älter als die Kryptografie, Hashtabellen in Datenstrukturen verwenden einfache Funktionen wie CRC und FNV, um Schlüssel auf Buckets zu verteilen. Kryptografische Hashes, entworfen, um irreversibel und kollisionsresistent zu sein, traten Ende der 1980er auf, mit Ron Rivests MD4 (1990) und MD5 (1991). MD5 wurde zwei Jahrzehnte lang zur De-facto-Prüfsumme, bis praktische Kollisionen es für Sicherheitsarbeit unsicher machten.

NISTs SHA-0 (1993) wurde fast sofort zurückgezogen und durch SHA-1 (1995) ersetzt. SHA-1 hielt länger, fiel aber stufenweise: theoretische Angriffe 2005, ein praktisches Szenario zur Zertifikatsfälschung bis 2009, und Googles SHAttered-Demonstration 2017, zwei verschiedene PDFs mit demselben SHA-1-Hash. Die SHA-2-Familie (SHA-224, SHA-256, SHA-384, SHA-512), 2001 veröffentlicht, wurde als längerfristiger Ersatz entworfen und ist bis heute sicher. SHA-3 (Keccak, 2015 standardisiert) ist ein strukturell anderer Entwurf, gedacht als Backup, falls SHA-2 jemals fällt.

Parallel dazu entwickelten sich passwortspezifische Hashes getrennt. Reines MD5 oder SHA-1 erwies sich als zu schnell für Passwortspeicherung, also fügten bcrypt (1999), scrypt (2009) und Argon2 (2015, Gewinner der Password Hashing Competition) absichtliche Langsamkeit und Speicherhärte hinzu, um Brute-Force-Angriffe um Größenordnungen teurer zu machen. Der richtige Hash für ein Passwort ist nie derselbe wie der richtige Hash für eine Dateiprüfsumme.

Wie Hashing funktioniert

Eine Hashfunktion nimmt eine Eingabe beliebiger Größe und erzeugt eine Ausgabe fester Größe:

EingabeSHA-256-Hash (erste 16 Zeichen)
hello2cf24dba5fb0a30e...
Hello185f8db32271fe25...
hello!ce06092fb948d9ff...

Beachten Sie, dass das Ändern eines einzelnen Zeichens (h klein zu H groß) oder das Hinzufügen eines Zeichens den Hash vollständig verändert. Das heißt Avalanche-Effekt und ist das, was Hashes nützlich macht, um jede noch so winzige Änderung zu erkennen.

Intern teilt eine moderne Hashfunktion ihre Eingabe in Blöcke fester Größe (64 Bytes für SHA-256, 128 für SHA-512), führt jeden Block durch eine Kompressionsfunktion und kettet den Zustand vorwärts. Die Ausgabe ist der Endzustand, nachdem der letzte Block eingemischt wurde. Da die Kette von jedem Byte abhängt, lässt keine Abkürzung einen Angreifer die Eingabe ändern, ohne den gesamten Hash neu zu schreiben.

Ein guter kryptografischer Hash hat drei Sicherheitseigenschaften: Pre-Image-Resistenz (Sie können keine Eingabe finden, die einen bestimmten Hash ergibt), Second-Pre-Image-Resistenz (gegeben eine Eingabe, finden Sie keine andere mit demselben Hash) und Kollisionsresistenz (Sie finden keine zwei verschiedenen Eingaben mit demselben Hash). MD5 scheitert an allen drei; SHA-1 scheitert an der Kollisionsresistenz; SHA-2 und SHA-3 halten alle drei noch.

Gängige Hash-Algorithmen

AlgorithmusAusgabebitsLängeStatusAnwendung
MD512832 hexGebrochen (unsicher)Legacy-Prüfsummen, Nicht-Sicherheitsverwendung
SHA-116040 hexGebrochen (unsicher)Nur Altsysteme
SHA-22422456 hexSicher (nischenhaft)SHA-256 bevorzugen
SHA-25625664 hexSicherDateiintegrität, digitale Signaturen
SHA-38438496 hexSicherTLS-1.3-Cipher-Suites
SHA-512512128 hexSicherHochsicherheitsanwendungen, 64-Bit-Leistung
SHA3-25625664 hexSicherZukunftssichere Alternative zu SHA-256
BLAKE2b / BLAKE3256 oder 512variabelSicher, sehr schnellrsync, restic, Massen-Hashing
HMAC-SHA25625664 hexSicherAPI-Anfragen-Signatur
bcrypt18460 Zeichen (eigen)Sicher für PasswörterPasswortspeicherung
Argon2idkonfigurierbarvariabelBestes für PasswörterModerne Passwortspeicherung
CRC32328 hexNur FehlererkennungKein Sicherheitshash

SHA-256 ist der aktuelle Standard für die meisten Allzweckanwendungen. MD5 und SHA-1 sollten nur verwendet werden, wenn sie für Altsysteme nötig sind; niemals für Sicherheitsgrenzen. Für Passwörter verwenden Sie bcrypt oder Argon2id, nicht rohes SHA-256.

So generieren Sie einen Hash

  1. Wählen Sie Ihren Algorithmus: MD5, SHA-1, SHA-256, SHA-384 oder SHA-512 aus dem Dropdown auswählen. Verwenden Sie SHA-256, sofern kein besonderer Grund für eine andere Wahl spricht.
  2. Text eingeben oder Datei hochladen: Tippen oder fügen Sie Text in das Eingabefeld ein oder ziehen Sie eine Datei hinein. Das Werkzeug führt den Hash vollständig in Ihrem Browser über die Web-Crypto-API aus.
  3. Hash kopieren: Das Ergebnis ist eine Hex-Zeichenkette, die Sie zur Verifikation, Speicherung oder zum Vergleich verwenden können. Viele Tools bieten zudem Base64-Codierung für kompakte Speicherung.
  4. Bei Bedarf vergleichen: Fügen Sie den veröffentlichten Hash neben Ihren erzeugten Hash ein und lassen Sie das Tool das erste abweichende Zeichen markieren. Visuelle Vergleiche von 64-Zeichen-Strings sind fehleranfällig.

Praktische Anwendungen

Dateiintegritätsprüfung: Laden Sie eine Datei herunter und vergleichen Sie ihren Hash mit dem offiziellen Hash des Herausgebers. Stimmen sie überein, ist die Datei authentisch und unverändert. Das ist der Anwendungsfall hinter den meisten alltäglichen Hash-Generierungen, der Ablauf hinter jedem sha256sum-Aufruf unter Linux und jeder Checksums-Seite auf einer Software-Download-Seite.

Passwortspeicherung, Anwendungen speichern Hashes von Passwörtern, nicht die Passwörter selbst. Beim Login wird Ihre Eingabe gehasht und mit dem gespeicherten Hash verglichen. Das entscheidende Detail ist, dass der Algorithmus absichtlich langsam sein muss (bcrypt, Argon2), damit ein Angreifer, der die Hash-Datei stiehlt, sie nicht in vertretbarer Zeit per Brute Force knacken kann.

Datendeduplizierung: Speichersysteme und Backup-Tools hashen Datenstücke, oft Blöcke von einigen Megabytes, und verwenden den Hash als Schlüssel. Zwei Stücke mit demselben Hash werden als identisch angenommen, sodass das zweite Vorkommen nur einen Verweis speichert. Tools wie restic, borg und viele Cloud-Backup-Dienste hängen davon ab.

Digitale Signaturen: Eine digitale Signatur ist ein mit einem privaten Schlüssel verschlüsselter Hash. Der Verifizierer hasht das Dokument, entschlüsselt die Signatur mit dem öffentlichen Schlüssel und prüft, ob beide übereinstimmen. Das beweist sowohl, dass das Dokument nicht verändert wurde, als auch, dass der Unterzeichner genau diese Version freigegeben hat.

HMAC für API-Sicherheit: HMAC kombiniert eine Hashfunktion mit einem geheimen Schlüssel und erzeugt einen Tag, den jeder mit demselben Schlüssel verifizieren kann. Webhooks, AWS-Request-Signing und viele interne RPCs verwenden HMAC-SHA256, damit der Empfänger weiß, dass die Anfrage wirklich aus einer vertrauenswürdigen Quelle stammt.

Blockchain und Merkle-Bäume: Kryptowährungen, content-adressierter Speicher (IPFS) und Git verwenden Hash-Bäume, um sich auf große Datenmengen mit einem einzigen Wurzel-Hash festzulegen. Ändern Sie ein Byte irgendwo im Baum, ändert sich der Wurzel-Hash, diese Eigenschaft macht die Daten manipulationssicher.

Cache-Schlüssel: Cache-Systeme hashen Request-URLs oder Query-Parameter, um einen kompakten Lookup-Schlüssel zu erzeugen. CRC und SipHash sind hier gängig, da sie Geschwindigkeit über kryptografische Garantien stellen.

Hash vs HMAC vs digitale Signatur

Diese drei Konzepte werden oft verwechselt, weil sie alle ähnlich aussehende Hex-Strings ausgeben.

KonzeptEingabenVerifiziertÜbliche Verwendung
HashDatenDaten unverändert seit Hash-BerechnungPrüfsummen, content-Adressierung
HMACDaten + geteiltes GeheimnisDaten unverändert UND von jemandem mit dem Geheimnis erzeugtAPI-Anfragen-Signierung, Webhooks
Digitale SignaturDaten + privater SchlüsselDaten unverändert UND mit einem bestimmten Schlüssel signiertTLS-Zertifikate, Software-Signierung
VerschlüsselungDaten + Schlüssel (beliebig)Daten blieben im Transit geheimVertraulichkeit (nicht nur Integrität)

Ein reiner Hash beweist nichts darüber, wer ihn erzeugt hat. HMAC beweist, dass der Sender das geteilte Geheimnis hatte. Eine Signatur identifiziert zusätzlich den Unterzeichner, ohne das Geheimnis teilen zu müssen. Wählen Sie das schwächste Werkzeug, das Ihr eigentliches Problem löst.

Häufige Fallstricke

Alternative Werkzeuge und Bibliotheken

Der Browser-Hash-Generator ist der schnellste Weg für einmalige Hashes. Für wiederholten Gebrauch oder Skripte übernehmen Kommandozeilen-Werkzeuge und Sprachbibliotheken.

WerkzeugPlattformStärkeAchten Sie auf
Web-Hash-GeneratorBrowserSofort, keine Installation, kein UploadEine Eingabe auf einmal
sha256sum, md5sumLinuxSkriptbar, GNU coreutils--check liest SHA256SUMS-Dateien
shasum -a 256macOS, BSDMit dem OS gebündeltAnderer Binärname als unter Linux
Get-FileHashWindows PowerShellErstklassig unter WindowsAusgabeformat unterscheidet sich von sha256sum
openssl dgst -sha256PlattformübergreifendWenn Sie ohnehin OpenSSL habenLangsamer als spezialisierte Werkzeuge
b3sum / BLAKE3-CLIPlattformübergreifendMehrere GB/s DurchsatzNeuer, weniger allgegenwärtig
Python hashlibPythonEingebaut, alle wichtigen AlgorithmenBei Bytes-Eingaben bleiben
Node cryptoNode.jsEingebaut, API ähnlich zu PythonStreaming für große Dateien
Web Crypto subtle.digestBrowser-JSNativ, schnell, ohne AbhängigkeitNur asynchrone API
HashiCorp Vault / KMSCloudZentrale Schlüsselverwaltung für HMAC und SignaturenAnbieterbindung

Bei Passwörtern behandeln Sie das Sprach-Ökosystem anders: verwenden Sie bcrypt, argon2-cffi, passlib oder den empfohlenen Adapter Ihrer Plattform, niemals eine handgeschriebene SHA-Schleife.

Datenschutz und der Hash-Generator

Der Hash-Generator läuft vollständig in Ihrem Browser. Der Text, den Sie tippen, wird im Speicher über die SubtleCrypto-Schnittstelle von Web Crypto gehasht, und jede ausgewählte Datei wird über die FileReader-API gestreamt, ohne Upload. Es gibt kein Protokoll, welche Eingaben gehasht wurden, keine Analytik darüber, welche Algorithmen beliebt sind, und keine Möglichkeit für irgendjemanden, zu rekonstruieren, was Sie verifiziert haben. Hashes selbst fassen oft sensibles Material zusammen, Passwörter, interne Dokumente, private Schlüssel, genau die Art von Daten, die Sie nie in das Formular eines Fremden einfügen sollten. Die Arbeit clientseitig zu erledigen, hält die Eingabe auf Ihrer Maschine, wo sie hingehört. Für eine Aufgabe, die so routiniert ist wie das Erzeugen einer Prüfsumme, sollte die Datenschutz-Voreinstellung sein: nichts verlässt die Seite, nichts wird gespeichert, nichts wird geteilt.

Häufig gestellte Fragen

Was ist der Unterschied zwischen MD5, SHA-1 und SHA-256?

MD5 erzeugt einen 128-Bit-Hash (32 Hex-Zeichen), SHA-1 160 Bit (40 Zeichen) und SHA-256 256 Bit (64 Zeichen). MD5 und SHA-1 gelten kryptografisch für Sicherheitszwecke als gebrochen. SHA-256 ist derzeit sicher und wird für Integritätsprüfung und Sicherheitsanwendungen empfohlen.

Kann man einen Hash umkehren, um die ursprünglichen Daten zu erhalten?

Nein. Hash-Funktionen sind per Design Einwegfunktionen. Ein Hash lässt sich mathematisch nicht in seine Eingabe zurückrechnen. Allerdings finden sich gängige Passwörter in vorberechneten Lookup-Tabellen (Rainbow-Tabellen), daher sollten Passwörter vor dem Hashen mit Salt versehen werden.

Was ist HMAC?

HMAC (Hash-based Message Authentication Code) kombiniert eine Hash-Funktion mit einem geheimen Schlüssel. Es prüft sowohl die Datenintegrität als auch die Authentizität, beweist, dass die Daten nicht manipuliert wurden und von jemandem stammen, der das Geheimnis kennt.

Werden meine Daten beim Erzeugen von Hashes an einen Server gesendet?

Nein. Sämtliches Hashing läuft in Ihrem Browser über die Web Crypto API. Ihre Texte und Dateien verlassen Ihr Gerät nie.

Why should I never use MD5 or SHA-1 for password storage even with a salt?

Both algorithms are extremely fast, which is the opposite of what you want for passwords. An attacker with a stolen hash file can try billions of guesses per second on a GPU. Password-hashing functions like bcrypt, scrypt, and Argon2 are deliberately slow and memory-hard, which forces attackers to spend orders of magnitude more time per guess.

When should I use SHA-512 instead of SHA-256?

On 64-bit CPUs, SHA-512 is often slightly faster than SHA-256 because its inner state and word size are tuned to 64-bit operations. Use SHA-512 when you want a longer digest (128 hex characters) for collision resistance margin, or when you are already in a SHA-512 ecosystem (TLS 1.3 with certain cipher suites, some HMAC implementations).