SHA256 vs SHA1: Welche Hash-Funktion sollten Sie verwenden?

19 Jan 2026 1,376 words

SHA256 vs SHA1

SHA1 und SHA256 sind beides kryptografische Hash-Funktionen aus der SHA-Familie (Secure Hash Algorithm), unterscheiden sich jedoch erheblich in Sicherheit und Ausgabegröße. Die Wahl der falschen Hash-Funktion für Ihre Anwendung kann schwerwiegende Sicherheitsfolgen haben, von geschwächten digitalen Signaturen bis hin zur vollständigen Kompromittierung von Passwortverifizierungssystemen. Dieser Leitfaden bietet einen gründlichen Vergleich, um Ihnen eine fundierte Entscheidung zu ermöglichen.

Eine kryptografische Hash-Funktion nimmt eine Eingabe beliebiger Größe und erzeugt eine Ausgabe fester Größe, die als Digest oder Hash-Wert bezeichnet wird. Die kritischen Eigenschaften einer sicheren Hash-Funktion umfassen Urbildresistenz (bei gegebenem Hash sollte es unpraktikabel sein, eine Eingabe zu finden, die ihn erzeugt), Zweiturbildresistenz (bei gegebener Eingabe sollte es unpraktikabel sein, eine andere Eingabe mit demselben Hash zu finden) und Kollisionsresistenz (es sollte unpraktikabel sein, zwei verschiedene Eingaben zu finden, die denselben Hash erzeugen). Sowohl SHA1 als auch SHA256 wurden entwickelt, um diese Eigenschaften zu bieten, aber SHA1s Kollisionsresistenz wurde in der Praxis gebrochen.

Wie Hash-Funktionen arbeiten

Sowohl SHA1 als auch SHA256 gehören zur Merkle-Damgard-Konstruktionsfamilie. Sie verarbeiten Eingabedaten in Blöcken fester Größe von 512 Bit. Die Eingabe wird zunächst aufgefüllt, um sicherzustellen, dass ihre Länge ein Vielfaches der Blockgröße ist. Die Auffüllung enthält die ursprüngliche Nachrichtenlänge, was bestimmte Arten von Angriffen verhindert. Jeder Block wird dann durch eine Kompressionsfunktion verarbeitet, die einen internen Zustand aktualisiert. Der endgültige Zustand nach der Verarbeitung aller Blöcke wird zur Hash-Ausgabe.

SHA1 verwendet 80 Kompressionsrunden mit 32-Bit-Wörtern und erzeugt eine 160-Bit-Ausgabe. Der Algorithmus verwendet vier Rundenkonstanten und zwanzig Rundenfunktionen, wobei jede Runde mit fünf 32-Bit-Arbeitsvariablen arbeitet. SHA256 verwendet 64 Kompressionsrunden, ebenfalls mit 32-Bit-Wörtern, erzeugt jedoch eine 256-Bit-Ausgabe unter Verwendung von acht Arbeitsvariablen und sechs logischen Funktionen. Die erhöhte Anzahl von Arbeitsvariablen und komplexeren Rundenfunktionen machen SHA256 wesentlich widerstandsfähiger gegen kryptanalytische Angriffe.

Hauptunterschiede

Merkmal SHA1 SHA256
Ausgabegröße 160 Bit (40 Zeichen) 256 Bit (64 Zeichen)
Sicherheit Gebrochen (SHAttered-Angriff) Sicher
Geschwindigkeit Schneller Langsamer
Runden 80 64
Blockgröße 512 Bit 512 Bit
Wortgröße 32 Bit 32 Bit
Empfohlen? Nein Ja

Der kritischste Unterschied ist die Sicherheit. SHA1 gilt als kryptografisch gebrochen, da Forscher praktische Kollisionsangriffe demonstriert haben. SHA256 bleibt Stand 2026 sicher, ohne bekannte praktische Angriffe, die seine effektive Sicherheit unter sein 128-Bit-Sicherheitsniveau reduzieren. Ein Sicherheitsniveau von n Bit bedeutet, dass der beste bekannte Angriff etwa 2^n Operationen erfordert, um die Hash-Funktion zu brechen. Für SHA256 bedeutet dies 2^128 Operationen, was mit aktueller und absehbarer Technologie undurchführbar ist.

Der Unterschied in der Ausgabegröße ist ebenfalls praktisch bedeutsam. Eine 160-Bit-Ausgabe bedeutet, dass es nur 2^160 mögliche Hash-Werte gibt. Durch das Geburtstagsparadoxon kann eine Kollision in etwa 2^80 Operationen gefunden werden. Während 2^80 einst als undurchführbar galt, haben Fortschritte in der GPU-Berechnung und spezialisierter Hardware diesen Angriffsvektor für gut finanzierte Angreifer praktikabel gemacht. SHA256s 2^128 Kollisionsresistenz bleibt unerreichbar.

Vollständiger SHA-Familienvergleich

Die SHA-Familie hat sich über drei Jahrzehnte entwickelt, wobei jede Generation die Schwächen ihrer Vorgänger verbesserte.

Algorithmus Ausgabe Sicherheitsniveau Jahr Status
SHA0 160 Bit 80 Bit 1993 Gebrochen
SHA1 160 Bit 80 Bit 1995 Veraltet
SHA224 224 Bit 112 Bit 2004 Sicher
SHA256 256 Bit 128 Bit 2004 Sicher
SHA384 384 Bit 192 Bit 2004 Sicher
SHA512 512 Bit 256 Bit 2004 Sicher
SHA3-256 256 Bit 128 Bit 2015 Sicher

SHA0 wurde kurz nach der Veröffentlichung aufgrund eines nicht offengelegten Fehlers zurückgezogen. SHA1 wurde als Korrektur für SHA0 entwickelt und diente fast zwei Jahrzehnte lang als Industriestandard. SHA224, SHA256, SHA384 und SHA512 sind gemeinsam als SHA-2 bekannt und wurden 2001 von NIST veröffentlicht (2004 standardisiert). SHA-3, veröffentlicht 2015, basiert auf der Keccak-Schwammkonstruktion und bietet eine Alternative zu SHA-2 mit grundlegend anderen Designprinzipien.

Bei der Wahl einer Hash-Funktion sollten Sie für die meisten Anwendungen standardmäßig SHA256 verwenden. SHA384 und SHA512 bieten höhere Sicherheitsniveaus, jedoch auf Kosten größerer Ausgaben und langsamerer Leistung. SHA3-256 ist eine ausgezeichnete Wahl, wenn Sie Ihre kryptografischen Abhängigkeiten von der SHA-2-Familie diversifizieren möchten.

Warum SHA1 ausgemustert wurde

Die Ausmusterung von SHA1 geschah nicht über Nacht. Kryptoanalytiker warnten bereits seit 2005 vor Schwächen in SHA1, als Forscher zeigten, dass die theoretische Kollisionsresistenz nur 2^69 Operationen betrug, statt der erwarteten 2^80. Im folgenden Jahrzehnt wurden diese Schätzungen mit Verbesserungen der kryptoanalytischen Techniken schrittweise reduziert.

Im Jahr 2017 demonstrierte Google den ersten praktischen SHA1-Kollisionsangriff (SHAttered). Sie erstellten zwei verschiedene PDF-Dateien mit demselben SHA1-Hash unter Verwendung von etwa 9 Trillionen (9.223.372.036.854.775.808) SHA1-Berechnungen. Dies erforderte etwa 6.500 Jahre CPU-Zeit, aber nur 110 GPU-Jahre. Der Angriff wurde mit Googles Cloud-Infrastruktur durchgeführt und kostete etwa 110.000 US-Dollar an Rechenzeit, was zeigt, dass SHA1-Kollisionen für gut finanzierte Organisationen erreichbar waren.

Der SHAttered-Angriff erzeugt speziell zwei kollidierende PDF-Dateien, indem PDF-Strukturen sorgfältig konstruiert werden, die große identische Blöcke ermöglichen, während sie sich in einer kleinen Anzahl von Bits unterscheiden, die denselben SHA1-Hash erzeugen. Die praktische Auswirkung dieses Angriffs umfasst die Möglichkeit, zwei Softwarepakete oder Dokumente mit unterschiedlichem Inhalt, aber identischen SHA1-Hashes zu erstellen. Eine Signatur auf dem einen könnte betrügerischerweise als für das andere geltend beansprucht werden.

Große Browser und Zertifizierungsstellen haben SHA1 seitdem als veraltet eingestuft. Ab 2017 zeigt Chrome eine Sicherheitswarnung für SHA1-Zertifikate an. Bis 2020 hatten alle großen Browser das Vertrauen in SHA1-basierte Zertifikate entzogen, wodurch die Verwendung von SHA1 im Web-PKI-Ökosystem effektiv beendet wurde.

Leistungsvergleich

SHA1 ist aus mehreren Gründen schneller als SHA256. Erstens verarbeitet SHA1 die Eingabe in 80 Runden pro Block, aber jede Runde ist einfacher als SHA256s 64 Runden. SHA256 verwendet komplexere logische Funktionen und einen größeren internen Zustand, was mehr Berechnung pro Runde erfordert. Zweitens passt SHA1s 160-Bit-interner Zustand in weniger Register als SHA256s 256-Bit-Zustand, was eine effizientere Implementierung auf 32-Bit-Prozessoren ermöglicht.

In der Praxis ist SHA256 in Softwareimplementierungen etwa 25 bis 40 Prozent langsamer als SHA1. Auf moderner Hardware mit Hardwarebeschleunigung (SHA-Erweiterungen in x86-Prozessoren) ist die SHA256-Leistung deutlich besser. Intel- und AMD-Prozessoren mit SHA-NI-Erweiterungen können SHA256 mit Geschwindigkeiten von über 2 GB/s berechnen, wodurch der Abstand zu SHA1 verringert wird.

Für die meisten Anwendungen ist der Leistungsunterschied zwischen SHA1 und SHA256 vernachlässigbar. Die für Menschen wahrnehmbare Verzögerung beim Hashen einer Datei oder Verifizieren einer Signatur wird von E/A-Operationen dominiert, nicht von der Hash-Berechnung. Das einzige Szenario, in dem SHA1s Geschwindigkeitsvorteil zählt, sind Hochdurchsatzsysteme, die Milliarden von Hashes berechnen, wie Blockchain-Mining oder massives Passwort-Cracking, beides keine legitimen Anwendungsfälle für SHA1 in neuen Entwicklungen.

Wann SHA256 verwendet werden sollte

Anwendungsfall Empfohlener Hash
SSL/TLS-Zertifikate SHA256
Datei-Integritätsprüfung SHA256 oder SHA512
Passwort-Hashing (mit Salt) bcrypt oder argon2
Digitale Signaturen SHA256
Blockchain SHA256 (Bitcoin)
Codesignierung SHA256

Für SSL/TLS-Zertifikate ist SHA256 die Mindestanforderung, seitdem große Browser SHA1 im Jahr 2017 als veraltet eingestuft haben. Zertifizierungsstellen dürfen keine SHA1-signierten Zertifikate mehr für das öffentliche Vertrauen ausstellen. Die Datei-Integritätsprüfung, wie Prüfsummendateien, die mit Softwaredownloads verteilt werden, sollte SHA256 verwenden. Viele Softwarevertriebsplattformen sind von SHA1- auf SHA256-Prüfsummen migriert, obwohl Sie bei älteren Paketen möglicherweise noch SHA1-Prüfsummen antreffen.

Passwort-Hashing erfordert besondere Aufmerksamkeit. Obwohl SHA256 eine sichere kryptografische Hash-Funktion ist, ist es nicht für die Passwortspeicherung allein geeignet. SHA256 ist darauf ausgelegt, schnell zu sein, was genau das ist, was Angreifer wollen, wenn sie gestohlene Passwort-Hashes knacken wollen. Für die Passwortspeicherung verwenden Sie eine spezielle Passwort-Hash-Funktion wie bcrypt, scrypt oder argon2. Diese Funktionen integrieren Salting und sind absichtlich langsam und speicherintensiv, um Brute-Force-Angriffen zu widerstehen.

Beispiele aus der Praxis für Migrationen

Git, das weit verbreitete Versionskontrollsystem, migrierte im Rahmen seines Übergangs zur SHA256-basierten Objektspeicherung von SHA1 zu SHA256. Ab Git 2.29 unterstützt Git SHA256-Repositorys neben traditionellen SHA1-Repositorys. Der Übergang erforderte erheblichen Aufwand, da Gits Datenmodell stark auf Hash-Werte angewiesen ist, um Objekte zu identifizieren und die Repository-Integrität zu überprüfen.

Die Linux-Kernel-Community begann 2011 damit, SHA256-Prüfsummen für Kernel-Release-Tarballs zu akzeptieren, um die vorhandenen SHA1-Prüfsummen zu ergänzen. Bis 2017 stellte kernel.org die Erzeugung von SHA1-Prüfsummen für neue Veröffentlichungen vollständig ein und verwendet ausschließlich SHA256 und SHA512.

Verwenden Sie das Tool SHA256 Generator, um SHA256-Hashes online zu generieren.


About this article

Vergleichen Sie SHA256- und SHA1-Hash-Funktionen, um zu verstehen, welche sicherer und für Ihre Projekte geeigneter ist.


Related Articles


Related Tools

Help2Code Logo
Menu