# Hash Generator — Manual

> Vollständige Funktionsbeschreibung des Hash Generators: Text- und Datei-Hashing, alle Algorithmen, HMAC, Hex-Ausgabe, Passphrasen-Generator und Grenzen.

Source: https://www.jpkc.com/db/tools/hash/manual/

Zurück zur Übersicht: [Hash Generator](https://www.jpkc.com/db/tools/hash/) · Tool live öffnen: [www.jpkc.com/tools/hash/](https://www.jpkc.com/tools/hash/)

Dieses Manual beschreibt den **Hash Generator** vollständig: wie das Text- und das Datei-Hashing funktionieren, welche Algorithmen es gibt, was HMAC macht und welche Grenzen gelten. Die Oberfläche des Tools ist auf Englisch — die Feld- und Button-Bezeichnungen werden hier deshalb in ihrer englischen Original-Schreibweise genannt (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

## Aufbau der Oberfläche

Das Tool gliedert sich in zwei Bereiche:

1. **Text-Hashing** (oben) — links die Eingabe (**Input** mit dem **Message**-Feld und dem optionalen **HMAC Secret Key**), rechts die Ausgabe (**Output**) und die **Algorithms**-Buttons.
2. **Datei-Hashing** (**File Hash**, unten) — links eine Ablagefläche für eine Datei, rechts die Ergebnis-Tabelle **File Checksums**.

## Text-Hashing

### Eingabe und Ablauf

Du tippst oder fügst deinen Text in das **Message**-Feld (mehrzeiliges Textfeld, Platzhalter „Enter text to hash…"). Anschließend klickst du auf einen der **Algorithms**-Buttons. **Wichtig:** Der Hash wird **beim Klick auf den Algorithmus-Button** berechnet, nicht automatisch beim Tippen — du wählst also gezielt, welches Verfahren du sehen willst. Das Ergebnis erscheint im **Output**-Feld als Hexadezimal-Zeichenkette.

Das **Output**-Feld ist editierbar (`contenteditable`), und der **Copy**-Button daneben legt den angezeigten Hash in die Zwischenablage. Vor dem ersten Klick steht dort der Hinweis „Select an algorithm below…".

Das **Message**-Feld führt zusätzlich eine lokale **Verlaufs-Liste** (History): Nach jeder Hash-Berechnung wird die Nachricht gespeichert, sodass du frühere Eingaben wieder aufrufen kannst.

### Ausgabe-Encoding

Alle Text-Hashes werden als **Hexadezimal** ausgegeben (`CryptoJS.enc.Hex`) — kleingeschrieben, ohne Trennzeichen. Eine Base64- oder sonstige Kodierung gibt es für die Text-Ausgabe nicht. Die Länge der Ausgabe hängt vom Algorithmus ab (z. B. 32 Hex-Zeichen bei MD5, 64 bei SHA-256, 128 bei SHA-512).

### Die Algorithmen im Detail

Die Buttons sind nach Familien gruppiert. Jeder normale Button erzeugt den reinen Hash; die HMAC-Buttons erzeugen die schlüsselbasierte Variante (siehe unten).

#### MD5

- **MD5** — 128-Bit-Hash, 32 Hex-Zeichen. Sehr schnell, aber **kryptografisch gebrochen** (Kollisionen praktisch erzeugbar). Nur als nicht-sicherheitsrelevante Prüfsumme verwenden.
- **HMAC** (HMAC-MD5) — MD5 mit geheimem Schlüssel.

#### SHA-1 / SHA-2

- **SHA-1** — 160-Bit, 40 Hex-Zeichen. Ebenfalls **gebrochen**; nur für Kompatibilität oder einfache Prüfsummen.
- **224** (SHA-224) — 56 Hex-Zeichen.
- **256** (SHA-256) — 64 Hex-Zeichen. Der heutige Standard für Datei-Integrität.
- **384** (SHA-384) — 96 Hex-Zeichen.
- **512** (SHA-512) — 128 Hex-Zeichen.
- Jeder dieser fünf hat einen eigenen **HMAC**-Button (HMAC-SHA-1, HMAC-SHA-224/256/384/512).

#### SHA-3

- **224**, **256**, **384**, **512** (SHA-3 (224/256/384/512)) — die moderne Keccak-basierte Familie. Anders als bei SHA-2: Nur die **512-Bit-Variante** hat einen **HMAC**-Button (HMAC-SHA-3); für SHA-3 (224/256/384) gibt es keine HMAC-Schaltfläche.

#### RIPEMD

- **RIPEMD-160** — 160-Bit, 40 Hex-Zeichen.
- **HMAC** (HMAC-RIPEMD-160) — mit geheimem Schlüssel.

### HMAC — schlüsselbasierte Authentifizierung

HMAC steht für **Keyed-Hash Message Authentication Code**. Anders als ein reiner Hash kombiniert HMAC die Nachricht mit einem **geheimen Schlüssel** — so lässt sich nicht nur prüfen, *ob* eine Nachricht unverändert ist, sondern auch, *dass sie von jemandem mit dem Schlüssel stammt* (Authentizität). Typischer Einsatz: API-Request-Signaturen und Webhook-Verifizierung.

So nutzt du es:

1. Trag deinen Schlüssel in das Feld **HMAC Secret Key** ein (im Tool als „(optional)" markiert, mit dem Hinweis „Required for HMAC variants" — also für die HMAC-Buttons nötig).
2. Klick auf einen **HMAC**-Button (z. B. HMAC neben SHA-256).
3. Das Ergebnis ist der HMAC der Nachricht unter diesem Schlüssel, ebenfalls als Hex.

#### Passphrasen-Generator (Schlüssel-Button)

Neben dem Schlüssel-Feld liegt ein Button mit Schlüssel-Symbol („Generate secure passphrase"). Er holt vom Server eine **64 Zeichen lange, zufällige Passphrase** und schreibt sie in das **HMAC Secret Key**-Feld. Die Zeichenkette wird serverseitig mit einem kryptografisch sicheren Zufallsgenerator (`random_int`) aus Groß-/Kleinbuchstaben, Ziffern und Sonderzeichen erzeugt. Das ist die **einzige** Server-Interaktion des Tools — dein zu hashender Text wird dabei nicht übertragen.

## Datei-Hashing (File Hash)

Mit dem **File Hash**-Bereich berechnest du Prüfsummen für eine ganze Datei — praktisch, um einen Download gegen einen veröffentlichten Wert zu prüfen.

### Datei wählen

Du ziehst eine Datei per **Drag & drop** in die Ablagefläche („Drag & drop a file here") oder klickst sie an, um den Datei-Dialog zu öffnen. Name und Größe werden danach angezeigt; über das X kannst du die Auswahl wieder entfernen. Das Maximum liegt bei **100 MB** — größere Dateien werden mit einer Fehlermeldung abgelehnt.

### Hashen

Ein Klick auf **Hash File** liest die Datei lokal als `ArrayBuffer` ein (über den `FileReader` des Browsers) und berechnet **acht Prüfsummen auf einmal**. Während der Berechnung läuft eine Fortschrittsanzeige („Computing hashes…"). Die Ergebnisse erscheinen in der Tabelle **File Checksums**, jeweils mit eigenem Kopier-Button.

Berechnet werden — in dieser Reihenfolge — **MD5, SHA-1, SHA-256, SHA-384, SHA-512, SHA-3 (256), SHA-3 (512), RIPEMD-160** (alle als Hex). Beachte: Das Datei-Hashing deckt eine etwas **andere Auswahl** ab als das Text-Hashing — SHA-224, SHA-3 (224) und SHA-3 (384) sind hier nicht dabei, und HMAC gibt es nur fürs Text-Hashing.

### Technik dahinter

- **SHA-1, SHA-256, SHA-384, SHA-512** laufen über die native **Web Crypto API** des Browsers (`crypto.subtle.digest`) — schnell und asynchron.
- **MD5, SHA-3 (256), SHA-3 (512), RIPEMD-160** rechnet **CryptoJS**, weil die Web Crypto API diese Verfahren nicht anbietet.

Auch hier gilt: Alles passiert **lokal im Browser**. Die Datei wird zu keinem Zeitpunkt hochgeladen.

## Betriebsgrenzen — kompakt

- **Datenschutz:** Text und Dateien werden ausschließlich clientseitig verarbeitet; nur der optionale Passphrasen-Generator kontaktiert den Server (und sendet dabei keinen deiner Inhalte).
- **Datei-Limit:** max. **100 MB** pro Datei.
- **Ausgabe:** durchgängig **Hexadezimal**, kleingeschrieben.
- **Text-Berechnung:** button-getriggert (ein Klick pro Algorithmus), nicht live beim Tippen.
- **HMAC:** Schlüssel im Feld **HMAC Secret Key** nötig; nicht für jeden SHA-3-Subtyp verfügbar (nur SHA-3 (512)).

Für den Einstieg und die Zielgruppen siehe die [Übersichtsseite](https://www.jpkc.com/db/tools/hash/). Konkrete Abläufe stehen in den [Beispielen](https://www.jpkc.com/db/tools/hash/examples/), die Sicherheits-Einordnung in den [Tipps & Tricks](https://www.jpkc.com/db/tools/hash/tips/). Ausprobieren kannst du alles direkt im [Tool](https://www.jpkc.com/tools/hash/).

