Zuletzt aktualisiert am 17.02.2026 6 Minuten Lesezeit

Hash

Ein Hash ist ein Wert fester Laenge, der durch eine mathematische Funktion aus beliebig langen Eingabedaten berechnet wird. Diese sogenannte Hashfunktion erzeugt aus einer Eingabe (etwa einem Passwort, einer Datei oder einem Text) einen eindeutigen Hashwert - vergleichbar mit einem digitalen Fingerabdruck.

Das Besondere an Hashfunktionen: Sie arbeiten nur in eine Richtung. Waehrend du aus einer Eingabe problemlos den Hash berechnen kannst, ist es praktisch unmoeglich, aus dem Hashwert die urspruenglichen Daten zurueckzugewinnen. Diese Eigenschaft macht Hashes zu einem Grundbaustein der modernen IT-Sicherheit.

Wie funktioniert eine Hashfunktion?

Eine Hashfunktion verarbeitet Eingabedaten beliebiger Groesse und erzeugt daraus eine Ausgabe mit immer gleicher, fester Laenge. Ob du einen einzelnen Buchstaben oder eine mehrere Gigabyte grosse Datei hashst - das Ergebnis hat stets dieselbe Anzahl an Zeichen.

Der Berechnungsprozess laeuft in mehreren Schritten ab:

  1. Eingabe aufbereiten: Die Daten werden in Bloecke definierter Groesse aufgeteilt und bei Bedarf aufgefuellt (Padding)
  2. Initialisierung: Interne Zustandsvariablen werden mit festgelegten Startwerten belegt
  3. Komprimierung: Jeder Datenblock durchlaeuft mehrere Runden mathematischer Operationen (Bitverschiebungen, logische Verknuepfungen, Additionen)
  4. Finalisierung: Die Zwischenergebnisse werden zum endgueltigen Hashwert zusammengefuehrt

Ein wichtiges Merkmal ist der Avalanche-Effekt (Lawineneffekt): Aendert sich auch nur ein einziges Bit der Eingabe, veraendert sich der resultierende Hashwert komplett. Dadurch lassen sich selbst minimale Aenderungen zuverlaessig erkennen.

Eigenschaften kryptographischer Hashfunktionen

Fuer sicherheitskritische Anwendungen muessen Hashfunktionen bestimmte Eigenschaften erfuellen. Diese Anforderungen unterscheiden kryptographische Hashfunktionen von einfachen Pruefsummen wie CRC.

Einweg-Eigenschaft (Preimage Resistance)

Aus einem Hashwert darf sich die urspruengliche Eingabe nicht berechnen lassen. Selbst mit enormer Rechenleistung soll es praktisch unmoeglich sein, zu einem gegebenen Hash die passende Eingabe zu finden. Diese Eigenschaft ist essentiell fuer die sichere Speicherung von Passwoertern.

Kollisionsresistenz

Es soll praktisch unmoeglich sein, zwei verschiedene Eingaben zu finden, die denselben Hashwert erzeugen. Eine solche Uebereinstimmung nennt man Kollision. Gaebe es einfache Wege, Kollisionen zu berechnen, koennten Angreifer beispielsweise gefaelschte Dokumente erstellen, die denselben Hash wie das Original aufweisen.

Determinismus

Dieselbe Eingabe muss immer exakt denselben Hashwert liefern. Diese Vorhersagbarkeit ist notwendig, damit du beispielsweise pruefen kannst, ob ein eingegebenes Passwort mit dem gespeicherten Hash uebereinstimmt.

Wichtige Hash-Algorithmen im Ueberblick

Im Laufe der Zeit wurden verschiedene Hash-Algorithmen entwickelt. Einige davon gelten heute als unsicher und sollten nicht mehr fuer sicherheitskritische Anwendungen verwendet werden.

MD5

MD5 (Message Digest 5) wurde 1991 von Ronald Rivest entwickelt und erzeugt 128-Bit-Hashes (32 hexadezimale Zeichen). Der Algorithmus war lange Zeit weit verbreitet, gilt jedoch seit 2004 als kryptographisch gebrochen. Sicherheitsforscher konnten nachweisen, dass sich Kollisionen innerhalb von Sekunden berechnen lassen. Fuer einfache Integritaetspruefungen wird MD5 noch verwendet, fuer Passwoerter oder digitale Signaturen ist es laut IETF RFC 6151 nicht mehr geeignet.

SHA-1

SHA-1 (Secure Hash Algorithm 1) stammt aus dem Jahr 1995 und erzeugt 160-Bit-Hashes (40 Zeichen). Obwohl er lange als sicher galt, demonstrierten Google-Forscher 2017 den ersten praktischen Kollisionsangriff (SHAttered). Seitdem gilt SHA-1 als veraltet. Moderne Browser akzeptieren keine TLS-Zertifikate mehr, die mit SHA-1 signiert wurden.

SHA-2 Familie

Die SHA-2-Familie wurde vom US-amerikanischen NIST standardisiert und umfasst mehrere Varianten mit unterschiedlichen Ausgabelaengen. SHA-256 (256 Bit) ist heute der empfohlene Standard fuer die meisten Anwendungen. Er bietet ein gutes Verhaeltnis zwischen Sicherheit und Geschwindigkeit. SHA-512 mit 512 Bit bietet noch hoeheren Schutz, ist aber auch rechenintensiver.

SHA-3

SHA-3 wurde 2015 als Alternative zu SHA-2 standardisiert und basiert auf einem voellig anderen Algorithmus (Keccak). Er bietet aehnliche Sicherheit wie SHA-2, verwendet aber eine andere mathematische Struktur. In der Praxis wird SHA-3 noch selten eingesetzt, steht aber als Backup bereit, falls Schwaechen in SHA-2 entdeckt werden sollten.

Vergleich gaengiger Hash-Algorithmen

Die folgende Tabelle gibt einen Ueberblick ueber die wichtigsten Eigenschaften der gaengigen Hash-Algorithmen:

Algorithmus Ausgabelaenge Sicherheitsstatus Empfehlung
MD5 128 Bit (32 Zeichen) Gebrochen Nur fuer nicht-sicherheitskritische Anwendungen
SHA-1 160 Bit (40 Zeichen) Gebrochen Nicht mehr verwenden
SHA-256 256 Bit (64 Zeichen) Sicher Empfohlener Standard
SHA-512 512 Bit (128 Zeichen) Sicher Fuer hoechste Sicherheitsanforderungen
SHA-3 224-512 Bit Sicher Alternative zu SHA-2

Fuer neue Projekte solltest du SHA-256 oder staerker verwenden. Die Geschwindigkeitsvorteile von MD5 sind in den meisten Anwendungsfaellen vernachlaessigbar und rechtfertigen das Sicherheitsrisiko nicht.

Einsatzgebiete von Hashfunktionen

Hashfunktionen sind in der IT allgegenwaertig. Die wichtigsten Anwendungsbereiche zeigen, warum du als IT-Fachkraft dieses Konzept verstehen solltest.

Passwortspeicherung

Passwoerter werden niemals im Klartext gespeichert. Stattdessen berechnet das System beim Anlegen eines Kontos den Hash des Passworts und speichert nur diesen. Bei der Anmeldung wird das eingegebene Passwort erneut gehasht und mit dem gespeicherten Wert verglichen. Stimmen beide ueberein, ist das Passwort korrekt - ohne dass es jemals lesbar abgelegt werden musste.

Moderne Systeme verwenden dabei spezialisierte Passwort-Hashfunktionen wie bcrypt, scrypt oder Argon2. Diese sind absichtlich langsam und erhoehen den Aufwand fuer Brute-Force-Angriffe erheblich. Zusaetzlich wird ein zufaelliger Wert (Salt) zum Passwort hinzugefuegt, um Rainbow-Table-Angriffe zu verhindern.

Integritaetspruefung und Checksummen

Mit Hashes kannst du pruefen, ob eine Datei unveraendert ist. Softwarehersteller veroeffentlichen die SHA-256-Hashes ihrer Downloads. Nach dem Herunterladen berechnest du den Hash der Datei und vergleichst ihn mit dem veroeffentlichten Wert. Stimmen sie ueberein, ist die Datei authentisch und wurde nicht manipuliert. Mehr dazu erfaehrst du im Lexikoneintrag zur Checksum (Pruefsumme).

Digitale Signaturen

Bei digitalen Signaturen wird nicht das gesamte Dokument verschluesselt, sondern nur dessen Hash. Der Absender signiert den Hashwert mit seinem privaten Schluessel. Der Empfaenger kann die Signatur mit dem oeffentlichen Schluessel verifizieren und gleichzeitig pruefen, ob das Dokument unveraendert ist. Dieses Verfahren ist deutlich schneller als das Signieren grosser Dateien und wird unter anderem bei der TLS-Verschluesselung eingesetzt.

Datenstrukturen in der Programmierung

Auch abseits der Kryptographie spielen Hashfunktionen eine wichtige Rolle. Hashtabellen (Hash Maps) nutzen Hashfunktionen, um Daten effizient zu speichern und abzurufen. Der Hash des Schluessels bestimmt die Speicherposition. Dadurch koennen Werte in konstanter Zeit O(1) gefunden werden, statt eine ganze Liste durchsuchen zu muessen.

Hashes in der Praxis berechnen

Als Fachinformatiker fuer Systemintegration oder Anwendungsentwicklung wirst du regelmaessig mit Hashes arbeiten. Hier siehst du, wie du SHA-256-Hashes unter verschiedenen Betriebssystemen berechnest.

Linux und macOS

# SHA-256-Hash einer Datei berechnen
sha256sum datei.iso

# SHA-256-Hash eines Strings berechnen
echo -n "Hallo Welt" | sha256sum

# Ausgabe: a1d0c6e83f027327d8461063f4ac58a6

Windows PowerShell

# SHA-256-Hash einer Datei berechnen
Get-FileHash datei.iso -Algorithm SHA256

# Ausgabe enthaelt Algorithmus, Hash und Pfad

Python

import hashlib

# SHA-256-Hash berechnen
text = "Hallo Welt"
hash_object = hashlib.sha256(text.encode())
hash_hex = hash_object.hexdigest()
print(hash_hex)  # 64 Zeichen hexadezimal

Sicherheitshinweise

Beim Einsatz von Hashfunktionen gibt es einige wichtige Punkte zu beachten:

  • Keine veralteten Algorithmen fuer sicherheitskritische Anwendungen: MD5 und SHA-1 sind fuer Passwoerter, Signaturen oder Zertifikate ungeeignet
  • Salting bei Passwoertern: Fuege jedem Passwort vor dem Hashen einen zufaelligen Salt hinzu
  • Spezialisierte Passwort-Hashes verwenden: bcrypt, scrypt oder Argon2 statt SHA-256 fuer Passwoerter
  • Timing-Attacken vermeiden: Verwende konstante Vergleichsfunktionen, die unabhaengig vom Inhalt gleich lange brauchen

Ein weit verbreiteter Fehler ist die Verwendung eines einfachen SHA-256-Hashes fuer Passwoerter ohne Salt. Ein Angreifer koennte dann vorgefertigte Tabellen (Rainbow Tables) nutzen, um haeufige Passwoerter schnell zu knacken.

Quellen und weiterfuehrende Links