SHA-1 Hash Generator

SHA-1-Hash aus beliebigem Text generieren

Eingabetext

Läuft lokal · Sicher zum Einfügen von Secrets

SHA-1-Hash

SHA-1-Hash wird hier angezeigt…

Was ist SHA-1-Hashing?

SHA-1 (Secure Hash Algorithm 1) ist eine kryptografische Hash-Funktion, die aus beliebigen Eingaben einen festen 160-Bit-(20-Byte-)Digest erzeugt. Von der NSA entwickelt und 1995 durch das NIST als FIPS PUB 180-1 standardisiert sowie später in RFC 3174 dokumentiert, wurde SHA-1 als stärkerer Nachfolger von SHA-0 und MD5 konzipiert. Der Algorithmus verarbeitet Eingaben in 512-Bit-Blöcken durch 80 Runden bitweiser Operationen und erzeugt dabei einen 40-stelligen hexadezimalen Fingerabdruck, der über ein Jahrzehnt lang die Grundlage von SSL/TLS, PGP, SSH und IPsec bildete.

Wie alle kryptografischen Hash-Funktionen ist SHA-1 eine Einwegumwandlung: Aus einer Eingabe lässt sich der Hash schnell berechnen, aber aus dem Hash allein kann die ursprüngliche Eingabe nicht wiederhergestellt werden. Selbst eine einzelne Bit-Änderung in der Eingabe erzeugt einen völlig anderen 160-Bit-Digest — eine Eigenschaft, die als Lawineneffekt bezeichnet wird. SHA-1 bildet einen beliebig großen Eingaberaum auf einen festen 160-Bit-Ausgaberaum ab, weshalb Kollisionen (zwei verschiedene Eingaben mit demselben Hash) mathematisch garantiert existieren. Die Sicherheitsaussage einer Hash-Funktion lautet, dass das Auffinden solcher Kollisionen ungefähr 2^80 Operationen erfordern sollte — die Hälfte der Ausgabe-Bitlänge.

Im Jahr 2017 veröffentlichten Google und CWI Amsterdam den SHAttered-Angriff und demonstrierten damit die erste praktische SHA-1-Kollision, indem zwei verschiedene PDF-Dateien mit demselben Digest erzeugt wurden. Der Angriff erforderte ungefähr 2^63,1 SHA-1-Berechnungen — weit unter dem theoretischen Grenzwert von 2^80. Im Jahr 2020 senkten Gaetan Leurent und Thomas Peyrin die Kosten mit einem Chosen-Prefix-Kollisionsangriff weiter, der etwa 2^63,4 Operationen benötigte. Infolgedessen haben alle großen Browser, Zertifizierungsstellen und Normungsgremien SHA-1 für digitale Signaturen und TLS-Zertifikate als veraltet eingestuft. Für nicht sicherheitskritische Zwecke bleibt SHA-1 jedoch weiterhin aktiv im Einsatz: Git-Objekt-IDs (obwohl Git zu SHA-256 migriert), ältere HMAC-Konstruktionen und Dateiintegritätsprüfsummen, bei denen keine adversarielle Kollisionsresistenz erforderlich ist.

Warum diesen SHA-1-Generator verwenden?

SHA-1-Hashes sofort generieren — ohne Installation oder Code schreiben. Text einfügen und den 40-stelligen Hex-Digest in Echtzeit erhalten — nützlich zur Überprüfung älterer Prüfsummen, zum Debuggen von Git-Interna oder zum Testen Hash-basierter Workflows.

Sofortiges Hashing
Die Ausgabe wird während der Eingabe aktualisiert. Kein Klicken auf Schaltflächen, kein Warten — der SHA-1-Digest erscheint Zeichen für Zeichen, während die Eingabe geändert wird.
🔒
Datenschutzkonforme Verarbeitung
Das gesamte Hashing läuft lokal im Browser per Web Crypto API. Der eingegebene Text verlässt das Gerät nie und wird nie an einen Server gesendet.
📋
Kopieren mit einem Klick
Den Hash mit einem einzigen Klick in die Zwischenablage kopieren. Zwischen Kleinbuchstaben- und Großbuchstaben-Hex-Ausgabe umschalten, um das Format des jeweiligen Systems zu erfüllen.
🔍
Kein Konto erforderlich
Keine Registrierung, kein Login, keine Nutzungslimits. Seite öffnen und sofort mit dem Hashing beginnen. Funktioniert auf jedem Gerät mit einem modernen Browser.

SHA-1-Anwendungsfälle

Git-Interna & Debugging
Git identifiziert jedes Objekt (Commit, Tree, Blob, Tag) anhand seines SHA-1-Hashs. Beim Debuggen von Git-Plumbing-Befehlen, beim Überprüfen von Pack-Dateien oder beim Schreiben eigener Git-Tools hilft ein schneller SHA-1-Generator dabei, Objekt-IDs mit erwarteten Werten abzugleichen.
Verifizierung älterer Systeme
Viele ältere Systeme, Paket-Registries und Firmware-Update-Mechanismen veröffentlichen weiterhin SHA-1-Prüfsummen neben Downloads. SHA-1-Hashes generieren und vergleichen, um die Dateiintegrität zu überprüfen, wenn SHA-256-Digests nicht verfügbar sind.
Subresource Integrity (SRI)
Obwohl sha256 und sha384 für SRI-Hashes in HTML-Script- und Link-Tags bevorzugt werden, verlassen sich manche ältere CDN-Konfigurationen noch auf SHA-1. Den erwarteten Digest generieren, um bestehende SRI-Attribute zu überprüfen oder auf neuere Algorithmen zu migrieren.
QA & Regressionstests
SHA-1-Hashes von API-Antworten, Build-Artefakten oder Datenbank-Snapshots zwischen Testläufen vergleichen, um unerwartete Änderungen zu erkennen — ohne einen vollständigen Byte-für-Byte-Vergleich großer Ausgaben durchzuführen.
Datendeduplizierung
SHA-1-Hashes von Dateiinhalten oder Datensätzen in ETL-Pipelines berechnen, um Duplikate zu identifizieren. Die 160-Bit-Ausgabe bietet eine stärkere Eindeutigkeitsgarantie als MD5 für nicht adversarielle Deduplizierungsszenarien.
Lernen & Bildung
SHA-1 ist ein gut dokumentierter Algorithmus mit umfangreicher akademischer Literatur. Mit ihm experimentieren, um die Merkle-Damgård-Konstruktion, das Message Scheduling und die Gründe für den Zusammenbruch der Kollisionsresistenz bei zu kurzer Ausgabelänge zu verstehen.

SHA-1 vs. andere Hash-Algorithmen

SHA-1 erzeugt einen 160-Bit-Digest — länger als MD5 (128 Bit), aber deutlich kürzer als die Algorithmen der SHA-2-Familie. Die folgende Tabelle vergleicht Digest-Größen, Standards und geeignete Anwendungsfälle der einzelnen Algorithmen.

AlgorithmusDigest-GrößeHex-LängeStandardGeeignet für
SHA-1160 bits40 hex chars1995 / RFC 3174Deprecated — legacy git commits, old TLS
SHA-256256 bits64 hex chars2001 / FIPS 180-4TLS certificates, blockchain, JWTs
SHA-384384 bits96 hex chars2001 / FIPS 180-4Government systems, higher security margin
SHA-512512 bits128 hex chars2001 / FIPS 180-4Digital signatures, HMAC with large keys
MD5128 bits32 hex chars1992 / RFC 1321Checksums only — broken since 2004
SHA-3256 bits64 hex chars2015 / FIPS 202Post-quantum readiness, alternative to SHA-2
BLAKE3256 bits64 hex chars2020High-performance checksums, Merkle trees

Wie SHA-1 funktioniert

SHA-1 folgt der Merkle-Damgård-Konstruktion: Die Nachricht wird aufgefüllt, in 512-Bit-Blöcke aufgeteilt, und jeder Block wird durch 80 Runden bitweiser Operationen verarbeitet, die die Eingabe mit einem aus dem Block abgeleiteten Message Schedule mischen. Fünf 32-Bit-Zustandswörter (H0 bis H4) tragen den laufenden Hash-Zustand, und die abschließende Verkettung dieser Wörter ergibt den 160-Bit-Digest.

Input: "hello world"
SHA-1: 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
(160 bits = 20 bytes = 40 hex characters)
SchrittBeschreibung
PaddingAppend a 1-bit, then zeros, until message length is 448 mod 512. Append the original length as a 64-bit big-endian integer.
Block splittingDivide the padded message into 512-bit (64-byte) blocks.
ExpansionExpand each 16-word block into 80 words using a left-rotate-by-1 XOR feedback schedule.
CompressionProcess 80 rounds per block using four nonlinear functions (Ch, Parity, Maj, Parity) across rounds 0-19, 20-39, 40-59, and 60-79.
OutputConcatenate the five 32-bit state words (H0-H4) into a 160-bit (20-byte) digest, rendered as 40 hexadecimal characters.

Der wesentliche Unterschied zwischen SHA-1 und MD5 liegt in der Anzahl der Zustandswörter (5 vs. 4), der Anzahl der Runden pro Block (80 vs. 64) und der Verwendung eines Message Schedules mit Left-Rotate-Feedback. Diese Unterschiede geben SHA-1 eine größere Ausgabe (160 vs. 128 Bit) und boten ursprünglich eine höhere Sicherheitsmarge — jedoch gelten beide Algorithmen mittlerweile für die Kollisionsresistenz als gebrochen.

Code-Beispiele

SHA-1-Hashes in gängigen Sprachen und Umgebungen generieren. Anders als MD5 ist SHA-1 in der Browser Web Crypto API verfügbar und kann daher ohne externe Bibliotheken sowohl im Browser als auch in Node.js-Umgebungen verwendet werden.

JavaScript (Web Crypto API — browser & Node.js)
// SHA-1 is available in the Web Crypto API
async function sha1(text) {
  const data = new TextEncoder().encode(text)
  const hashBuffer = await crypto.subtle.digest('SHA-1', data)
  const hashArray = Array.from(new Uint8Array(hashBuffer))
  return hashArray.map(b => b.toString(16).padStart(2, '0')).join('')
}

await sha1('hello world')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

// Node.js (built-in crypto module)
const crypto = require('crypto')
crypto.createHash('sha1').update('hello world').digest('hex')
// → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"
Python
import hashlib

# Basic SHA-1 hash
result = hashlib.sha1(b'hello world').hexdigest()
print(result)  # → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a string (encode to bytes first)
text = 'hello world'
hashlib.sha1(text.encode('utf-8')).hexdigest()
# → "2aae6c35c94fcfb415dbe95f408b9ce91ee846ed"

# Hash a file in chunks
with open('file.bin', 'rb') as f:
    sha1 = hashlib.sha1()
    for chunk in iter(lambda: f.read(8192), b''):
        sha1.update(chunk)
    print(sha1.hexdigest())
Go
package main

import (
    "crypto/sha1"
    "fmt"
)

func main() {
    data := []byte("hello world")
    hash := sha1.Sum(data)
    fmt.Printf("%x\n", hash)
    // → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed
}
CLI (Linux / macOS)
# Using sha1sum (Linux) or shasum (macOS)
echo -n "hello world" | sha1sum
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# macOS
echo -n "hello world" | shasum -a 1
# → 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed  -

# Hash a file
sha1sum package.json
# → a1b2c3d4e5f6...  package.json

# Using openssl (cross-platform)
echo -n "hello world" | openssl sha1
# → SHA1(stdin)= 2aae6c35c94fcfb415dbe95f408b9ce91ee846ed

Häufig gestellte Fragen

Ist SHA-1 noch sicher zu verwenden?
SHA-1 ist für sicherheitskritische Anwendungen nicht sicher. Der SHAttered-Angriff von 2017 demonstrierte die praktische Erzeugung von Kollisionen, und der Chosen-Prefix-Angriff von 2020 senkte die Kosten weiter. Für digitale Signaturen, TLS-Zertifikate oder Szenarien, in denen ein Angreifer kollidierende Eingaben konstruieren könnte, stattdessen SHA-256 oder SHA-3 verwenden. Für nicht sicherheitskritische Zwecke wie Prüfsummen und Cache-Schlüssel, bei denen kein Angreifer die Eingabe kontrolliert, bleibt SHA-1 funktional.
Was ist der Unterschied zwischen SHA-1 und SHA-256?
SHA-1 erzeugt einen 160-Bit-(40-Hex-Zeichen-)Digest und ist anfällig für Kollisionsangriffe. SHA-256 erzeugt einen 256-Bit-(64-Hex-Zeichen-)Digest und gehört zur SHA-2-Familie, für die keine bekannten praktischen Angriffe existieren. SHA-256 ist auf gleicher Hardware etwa 20–30 % langsamer als SHA-1, aber die zusätzlichen 96 Ausgabe-Bits und das Fehlen bekannter struktureller Schwächen machen ihn zur Standardempfehlung für alle neuen Projekte.
Warum verwendet Git SHA-1?
Als Linus Torvalds Git im Jahr 2005 entwickelte, galt SHA-1 als sicher und bot eine gute Balance zwischen Geschwindigkeit und Kollisionsresistenz für inhaltsadressierbaren Speicher. Git verwendet SHA-1 als Inhaltsbezeichner, nicht als Sicherheitsmechanismus — er erkennt versehentliche Datenbeschädigung, nicht absichtliche Manipulation. Seit 2021 migriert Git über das im git-hash-function-transition-Plan beschriebene Hash-Erweiterungs-Framework zu SHA-256.
Kann ein SHA-1-Hash zur ursprünglichen Eingabe zurückgeführt werden?
Nein. SHA-1 ist eine Einwegfunktion, die beim Hashing Informationen verwirft. Für kurze oder häufig vorkommende Eingaben können Angreifer Rainbow Tables oder Brute-Force einsetzen, um den ursprünglichen Klartext zu finden — das ist jedoch keine Umkehrung des Algorithmus, sondern eine erschöpfende Suche im Eingaberaum. Für Passwörter bcrypt, scrypt oder Argon2 statt einer schnellen Hash-Funktion verwenden.
Wie funktioniert der SHAttered-Angriff?
Der SHAttered-Angriff nutzt strukturelle Schwachstellen in der SHA-1-Kompressionsfunktion aus. Durch sorgfältige Konstruktion zweier verschiedener 512-Bit-Nachrichtenblöcke, die denselben Zwischen-Hash-Zustand erzeugen, erstellten die Angreifer zwei PDF-Dateien mit identischen SHA-1-Digests, aber unterschiedlichem sichtbarem Inhalt. Der Angriff erforderte ungefähr 2^63 SHA-1-Berechnungen — etwa 6.500 Jahre auf einer einzelnen CPU, aber auf einem GPU-Cluster in Monaten durchführbar. Die Kosten sind seitdem durch verbesserte Techniken weiter gesunken.
Was ist der Unterschied zwischen SHA-1 und HMAC-SHA1?
SHA-1 ist eine einfache Hash-Funktion: hash = SHA1(message). HMAC-SHA1 ist ein schlüsselbasierter Message Authentication Code: mac = HMAC(key, message). HMAC kapselt die Hash-Funktion in eine Konstruktion, die Length-Extension-Angriffe verhindert und einen geheimen Schlüssel erfordert. Interessanterweise gilt HMAC-SHA1 für die Nachrichtenauthentifizierung weiterhin als sicher, obwohl SHA-1 selbst für die Kollisionsresistenz als gebrochen gilt — weil die Sicherheit von HMAC von den Pseudozufallsfunktionseigenschaften der Kompressionsfunktion abhängt, nicht von der Kollisionsresistenz.
Sollte ich SHA-1 oder MD5 für Datei-Prüfsummen verwenden?
SHA-1 ist für Datei-Prüfsummen die bessere Wahl als MD5. MD5 erzeugt einen 128-Bit-Digest und ist seit 2004 gebrochen, wobei praktische Kollisionsangriffe heute in Sekunden durchführbar sind. SHA-1 erzeugt einen 160-Bit-Digest, und seine Kollisionsangriffe bleiben trotz Demonstration kostspieliger. Für alle neuen Systeme jedoch SHA-256 bevorzugen — es bietet einen 256-Bit-Digest ohne bekannte praktische Angriffe und wird auf allen Plattformen und in allen Sprachen gut unterstützt.