Hash Generator

SHA-256-Hash von "Hello, World!": Hash-Generator

Der SHA-256-Hash des Textes Hello, World! ist dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f. Überprüfe es selbst und erfahre, wie SHA-256 funktioniert.

100% clientseitig. Deine Daten verlassen niemals deinen Browser.

Hashes
MD5
SHA-1
SHA-256
SHA-512

Verwandte Werkzeuge

SHA-256-Hash des Textes “Hello, World!”

Der SHA-256-Hash des Textes Hello, World! ist:

dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f

Das sind 64 Hexadezimalzeichen, die 256 Bit repräsentieren. Du kannst das in jeder Umgebung überprüfen:

# Terminal (macOS/Linux)
echo -n "Hello, World!" | sha256sum

# macOS-Alternative
echo -n "Hello, World!" | shasum -a 256

# Python
import hashlib
hashlib.sha256(b"Hello, World!").hexdigest()

# Node.js
const crypto = require('crypto');
crypto.createHash('sha256').update('Hello, World!').digest('hex');

Alle sollten dffd6021bb2bd5b0af676290809ec3a53191dd81c7f70a4b28688a362182986f zurückgeben. Wenn du ein anderes Ergebnis erhältst, überprüfe den abschließenden Zeilenumbruch. echo ohne -n fügt einen Zeilenumbruch hinzu und ändert die Eingabe und den Hash.

Was SHA-256 wirklich tut

SHA-256 ist Teil der SHA-2-Familie, die 2001 vom NIST standardisiert wurde. Es nimmt eine Eingabe beliebiger Größe und erzeugt eine feste 256-Bit-Ausgabe. Der Algorithmus arbeitet in mehreren Stufen:

Vorverarbeitung

Die Eingabe wird so aufgefüllt, dass ihre Länge kongruent zu 448 Modulo 512 Bit ist. Eine 64-Bit-Darstellung der ursprünglichen Nachrichtenlänge wird angehängt. Dies stellt sicher, dass die Gesamtlänge ein Vielfaches von 512 Bit ist.

Nachrichtenplan

Die aufgefüllte Eingabe wird in 512-Bit-Blöcke aufgeteilt. Jeder Block wird mit bitweisen Operationen (XOR, Rechtsverschiebungen, Rotationen) auf 64 32-Bit-Wörter erweitert.

Kompression

Eine Kompressionsfunktion führt 64 Runden über den aktuellen Hash-Zustand aus, wobei die 64 Wörter plus 64 Rundenkonstanten verwendet werden, die von den Bruchteilen der Kubikwurzeln der ersten 64 Primzahlen abgeleitet sind. Der Zustand besteht aus acht 32-Bit-Variablen (a bis h), die von den gebrochenen Quadratwurzeln der ersten 8 Primzahlen initialisiert werden.

Finaler Hash

Nach der Verarbeitung aller Blöcke werden die acht Zustandsvariablen zur 256-Bit-Ausgabe verkettet.

Vier wichtige Eigenschaften

Deterministisch

Dieselbe Eingabe erzeugt immer denselben Hash. Hello, World! ist immer dffd6021.... Das macht Hashes als stabile Identifikatoren nützlich.

Ausgabe fester Größe

Ein einzelnes Zeichen und eine 10 GB große Datei erzeugen beide einen 256-Bit-Hash. Diese Eigenschaft macht Hashing nützlich, um Dateien zu vergleichen, ohne ihren Inhalt Byte für Byte zu vergleichen.

Lawineneffekt

Das Ändern eines einzigen Bits in der Eingabe ändert die Ausgabe vollständig. Hello, World! und Hello, World? erzeugen Hashes, die fast keine Bits gemeinsam haben. Das bedeutet, dass du nichts über die Eingabe aus kleinen Änderungen am Hash ableiten kannst.

Urbildresistenz

Bei einem gegebenen Hash kannst du nicht rückwärts arbeiten, um die Eingabe zu finden. Dies ist die Grundlage dafür, wie Passwort-Hashing (auf hohem Niveau) und digitale Signaturen funktionieren.

Wo SHA-256 verwendet wird

Dateiintegritätsprüfung

Wenn du Software herunterlädst, veröffentlicht das Projekt normalerweise eine SHA-256-Checksumme zusammen mit der Binärdatei. Du hashest die heruntergeladene Datei und vergleichst sie. Wenn sie übereinstimmen, wurde die Datei während der Übertragung nicht manipuliert.

sha256sum downloaded-file.tar.gz
# vergleiche mit der veröffentlichten Checksumme

Bitcoin

Der Proof-of-Work-Algorithmus von Bitcoin verlangt von Minern, einen Nonce zu finden, sodass SHA-256(SHA-256(block_header)) einen Hash unter einem Zielwert erzeugt. Die doppelte SHA-256-Konstruktion wurde von Satoshi Nakamoto gewählt, um sich gegen Längenangriffserweiterungen zu verteidigen, die einfaches SHA-256 betreffen.

TLS-Zertifikatsprüfung

X.509-Zertifikate werden mit einem Hash ihres Inhalts signiert. SHA-256 ist der Standard für Zertifikatssignaturen; SHA-1 wurde um 2017 von vertrauenswürdigen Zertifizierungsstellen veraltet und entfernt.

HMAC-Konstruktion

HMAC-SHA-256 verwendet SHA-256 als zugrunde liegenden Hash in einem Nachrichtenauthentifizierungscode. Es wird bei der JWT-Signaturprüfung (HS256), der AWS-Anfragesignatur und vielen API-Authentifizierungsschemata verwendet.

Git-Objektspeicherung

Git speichert jede Datei, jedes Verzeichnis und jeden Commit als inhaltsadressiertes Objekt. Der SHA des Objekts (historisch SHA-1, im Übergang zu SHA-256) wird aus seinem Inhalt berechnet und sowohl als Speicherschlüssel als auch als Integritätsprüfung verwendet.

SHA-256 ist nicht ausreichend für Passwortspeicherung

SHA-256 ist schnell, beabsichtigt. Für Dateiintegrität und digitale Signaturen ist Geschwindigkeit wünschenswert. Für Passwort-Hashing ist es ein Nachteil. Ein Angreifer mit einer GPU kann Milliarden von SHA-256-Hashes pro Sekunde berechnen, was Brute-Force- und Wörterbuchangriffe gegen eine Datenbank mit SHA-256-gehashten Passwörtern praktikabel macht.

Verwende eine spezielle Passwort-Hash-Funktion:

Diese Funktionen enthalten ein zufälliges Salt pro Benutzer (verhindert Rainbow-Table-Angriffe) und sind darauf ausgelegt, langsamer zu werden, wenn die Hardware besser wird.

Wenn du Passwörter speicherst, verwende SHA-256 nicht direkt, nicht einmal mit Salt. Verwende bcrypt oder Argon2.

Vergleich von SHA-256 mit SHA-1 und MD5

AlgorithmusAusgabegrößeStatus
MD5128 Bit (32 Hex-Zeichen)Gebrochen. Praktische Kollisionsangriffe existieren
SHA-1160 Bit (40 Hex-Zeichen)Gebrochen. SHAttered-Angriff (2017) demonstrierte praktische Kollision
SHA-256256 Bit (64 Hex-Zeichen)Sicher. Keine bekannte Schwäche
SHA-3-256256 Bit (64 Hex-Zeichen)Sicher. Andere interne Struktur (Keccak Sponge)

MD5 und SHA-1 werden immer noch in nicht-sicherheitsrelevanten Kontexten verwendet (Checksummen zur Fehlererkennung, Legacy-System-Identifikatoren), wo Kollisionsresistenz keine Rolle spielt. Für jeden Kontext, in dem ein Angreifer versuchen könnte, zwei Eingaben mit demselben Hash zu erzeugen (Zertifikatsbetrug, Dateiersetzung, Signaturfälschung), sollte nur SHA-256 oder stärker verwendet werden.