Generator — Manual

Vollständige Funktionsbeschreibung des Generators: alle sechs Reiter, Optionen und Zeichensätze, Passphrasen, Wi-Fi-QR, .htpasswd, TOTP und die Text-API.

Zurück zur Übersicht: Generator · Tool live öffnen: www.jpkc.com/tools/generator/

Dieses Manual beschreibt den Generator vollständig: jeden der sechs Reiter, seine Optionen und Zeichensätze, die Architektur, die Text-API für Skripte und die Grenzen. Die Oberfläche ist auf Englisch — die Reiter- und Button-Namen stehen deshalb in ihrer englischen Original-Schreibweise (mit deutscher Erläuterung), damit du dich im echten Interface zurechtfindest.

Architektur und Datenschutz vorab

  • Alles auf der Seite entsteht im Browser. Zufallswerte zieht das Tool aus crypto.getRandomValues; damit jedes Zeichen gleich wahrscheinlich ist, verwirft es Zufallszahlen oberhalb des größten Vielfachen der Alphabetgröße (Rejection Sampling, keine Modulo-Verzerrung). Die Hashes im Reiter .htpasswd berechnet die WebAssembly-Bibliothek hash-wasm lokal, TOTP-Codes die Web-Crypto-API (HMAC). Es gibt keine AJAX-Aufrufe, keine Speicherung und keinen Verlauf.
  • Eine Quelle für die Zeichensätze. Die Alphabete sind serverseitig als PHP-Konstante definiert und werden beim Laden an das JavaScript übergeben. Seite und Text-API erzeugen deshalb aus identischen Zeichensätzen. Alle bestehen aus druckbarem ASCII ohne ' und \ — also ohne Zeichen, die auf Tastaturen außerhalb Deutschlands fehlen (wie §), und ohne Leerzeichen, die beim Kopieren am Rand verloren gehen.
  • Nachgeladen wird nur die Wortliste für Passphrasen (EFF Large Wordlist, 7.776 Wörter, Lizenz CC BY 3.0 US), und zwar erst, wenn du diesen Modus auswählst.

Heißt: Ein Passwort, das du für eine .htpasswd-Zeile eintippst, und ein TOTP-Secret verlassen deinen Rechner nicht. Die Ergebnisfelder sind editierbar; mit Copy übernimmst du ihren aktuellen Inhalt in die Zwischenablage.

Passwords — Passwort-Generator

Der Standard-Reiter erzeugt zufällige Passwörter und Passphrasen. Die Steuerelemente:

  • Complexity (Zeichensatz bzw. Verfahren):
    • a-z + A-Z + 0-9 + more specials (Vorgabe) — 79 Zeichen: Buchstaben, Ziffern und , . - ; _ # + * ! $ % & / ( ) = ?.
    • a-z + A-Z + 0-9 + less specials — 72 Zeichen, nur . - _ + # $ % * , ! als Sonderzeichen, für Systeme, die bei manchen Zeichen streiken.
    • a-z + A-Z + 0-9 — 62 Zeichen, rein alphanumerisch.
    • a-f + 0-9 (hex) — 16 Zeichen, für Tokens und Keys.
    • Apple-style (memorable, pronounceable) — siehe Apple-Stil.
    • Passphrase (words from the EFF list) — siehe Passphrasen.
  • Length (Länge): ein Zahlenfeld von 4 bis 128, Vorgabe 24. Werte außerhalb setzt das Tool beim Generieren auf die Grenze zurück, ein leeres Feld (oder 0) auf die Vorgabe 24.
  • How many (Anzahl): 1 (Vorgabe), 5, 10 oder 20 Ergebnisse auf einmal, eines pro Zeile.
  • Exclude look-alikes (Schalter, aus): entfernt die leicht verwechselbaren Zeichen 0 O o 1 l I | aus dem Zeichensatz — praktisch, wenn jemand das Passwort abtippen oder vorlesen muss. Der Zeichensatz schrumpft dadurch (z. B. von 79 auf 73 Zeichen). Bei Hex, Apple-Stil und Passphrasen ist der Schalter ausgeblendet. Ausgeblendet heißt aber nicht ausgeschaltet: Hast du ihn vorher in einer anderen Stufe aktiviert, filtert er bei Hex weiter 0 und 1 heraus — der Zeichensatz schrumpft auf 14 Zeichen, die Entropie-Anzeige sinkt entsprechend. Schalte ihn deshalb aus, bevor du zu Hex wechselst.

Generate Password erzeugt neue Werte, Copy kopiert das Ergebnisfeld.

Entropie-Anzeige: Neben den Buttons zeigt ein Badge die Stärke als geschätzte Entropie in Bit („≈ N bits of entropy“). Für Zufallspasswörter rechnet das Tool Länge × log₂(Größe des Zeichensatzes). Die Stufen: unter 40 Bit weak, unter 60 fair, unter 80 strong, ab 80 very strong. Ein 24-stelliges Passwort aus dem vollen Zeichensatz kommt auf rund 151 Bit.

Apple-Stil — aussprechbar und einprägsam

Wählst du Apple-style, erscheint statt Length das Feld Blocks: 3 (Vorgabe) bis 9 Blöcke à sechs Zeichen, durch - getrennt — also 20 bis 62 Zeichen. Jeder Block wechselt zwischen Konsonant und Vokal (dadurch aussprechbar). Verwendet werden nur die Konsonanten bcdfghjkmnpqrstvwxz und die Vokale aeiuy; l und o fehlen bewusst. Im ganzen Passwort ersetzt genau eine Ziffer (2 bis 9) einen Konsonanten, und genau ein Buchstabe ist großgeschrieben. Ein Ergebnis sieht etwa aus wie kibavu-se4iru-Nypuky. Drei Blöcke liefern laut Anzeige rund 69 Bit, vier Blöcke rund 90 Bit.

Passphrasen — Wörter aus der EFF-Liste

Mit Passphrase (words from the EFF list) setzt das Tool Wörter aus der EFF Large Wordlist zusammen. Jedes Wort trägt log₂(7.776) ≈ 12,9 Bit bei. Die Optionen:

  • Words: 3 bis 12 Wörter, Vorgabe 6.
  • Separator (Trennzeichen, Auswahl neben der Wortzahl): - (Vorgabe), space (Leerzeichen), . oder _.
  • Capitalize words (aus): schreibt jedes Wort groß.
  • Add a digit (an): hängt an ein zufällig gewähltes Wort eine Ziffer von 0 bis 9 an — für Login-Formulare, die eine Ziffer verlangen.

Sechs Wörter mit Ziffer ergeben laut Anzeige rund 83 Bit, etwa pellet-unbiased-cubicle7-snore-quarry-dwelling (Beispiel). Lässt sich die Wortliste nicht laden, meldet das Tool „Could not load the word list.“

Salt — Salt-Keys

Erzeugt kryptografische Salt-Keys aus dem größten Zeichensatz des Tools: 91 Zeichen, nämlich Buchstaben, Ziffern und , . - ; : _ # + * ! $ % & / ( ) = ? ` ^ < > @ [ ] | { } ~. Leerzeichen gehören nicht mehr dazu.

  • Length: 16, 32, 64 (Vorgabe), 128, 256, 512, 1024.

Generate Salt Key erzeugt einen Wert. Geeignet für allgemeine Secret- und Salt-Werte in Konfigurationen.

WordPress — Sicherheitsschlüssel für wp-config.php

Erzeugt die acht WordPress-Sicherheitsschlüssel: AUTH_KEY, SECURE_AUTH_KEY, LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT und NONCE_SALT. Der Zeichensatz hat 90 Zeichen — wie beim Salt, nur ohne $.

  • Key Length: 64 (Vorgabe), 72, 96, 128.
  • Format:
    • wp-config.php (define) (Vorgabe) — acht fertige Zeilen wie define('AUTH_KEY', '…');.
    • .env (Bedrock / Roots) — acht Zeilen im Format NAME='…', für Setups, die die Schlüssel aus einer .env-Datei lesen. Die Namen sind zur Ausrichtung mit Leerzeichen auf 16 Zeichen aufgefüllt, z. B. AUTH_KEY ='…'.

Weil der Zeichensatz weder ' noch \ enthält, kann kein Schlüssel die einfachen Anführungszeichen aufbrechen — weder in PHP noch in der .env. Generate Keys liefert den Block, Copy kopiert ihn.

Extreme Keys — gehärtete Schlüssel mit hash_hmac()

Der Button Extreme Keys (gelb) klappt zuerst ein Optionen-Panel auf; ein weiterer Klick bei geöffnetem Panel generiert. Dieser Modus baut die Schlüssel nicht statisch, sondern als PHP-Code, der sie zur Laufzeit per hash_hmac('sha512', …) aus statischen Geheimnissen und dynamischen Server-Variablen ableitet. Optionen:

  • Key Rotation: No rotation (recommended) (Vorgabe), Hourly, Daily, Weekly, Monthly — wie oft sich die Schlüssel über date() automatisch ändern.
  • Dynamic Components (Schalter): Client IP (REMOTE_ADDR, aus), User-Agent (HTTP_USER_AGENT, aus), Server Address (SERVER_ADDR + SERVER_NAME, an).

Der erzeugte Code enthält acht statische Geheimnisse (JPKCOM_EX_SECRET_1 bis _8, Länge laut Key Length), die Helferfunktion jpkcom_extreme_key() und die acht define()-Zeilen; ein Kommentarkopf listet die gewählten Komponenten und die Fälle, in denen Sessions ungültig werden. Die Ausgabe ist immer PHP — die Einstellung Format gilt hier nicht. Sind alle Komponenten aus und ist keine Rotation gewählt, bleibt ein rein statisches hash_hmac().

Wichtig: Jede gewählte Komponente, die sich ändert, invalidiert die laufenden Sessions. Die Warnung im Panel nennt die Folgen: Die Client-IP ist hinter CDNs und Proxys unzuverlässig und meldet mobile Nutzer bei jedem Netzwechsel ab, ein Browser-Update ändert den User-Agent, und jede Rotation meldet alle ab und macht Links zum Zurücksetzen von Passwörtern ungültig. Die Vorgaben (nur Server-Adresse, keine Rotation) sind laut Tool die sichere Wahl.

WLAN — WPA/WPA2-Schlüssel

Erzeugt WLAN-Schlüssel von 20 bis 63 Zeichen.

  • Complexity: a-z + A-Z + 0-9 + specials (Vorgabe; 67 Zeichen mit . - _ , +) oder a-z + A-Z + 0-9 (rein alphanumerisch).
  • Length: 20, 30, 40, 50, 63 (Vorgabe).

Generate WLAN Key erzeugt den Schlüssel, Copy kopiert ihn.

Wi-Fi-QR-Code

Unter dem Schlüssel baut das Tool auf Wunsch einen QR-Code, den Smartphones scannen, um sich ohne Abtippen mit dem Netz zu verbinden:

  • Network name (SSID) — der Name deines WLANs.
  • Security: WPA / WPA2 (Vorgabe) oder WPA3 (SAE).
  • Hidden network (Schalter) — für Netze, die ihre SSID nicht aussenden.

Der QR-Code erscheint, sobald SSID und Schlüssel eingetragen sind, und zeichnet sich bei jeder Änderung von SSID, Security, Hidden oder Schlüssel neu. Das Ergebnisfeld ist editierbar — dort kannst du auch einen vorhandenen Schlüssel eintragen. Der QR-Code enthält den Standard-Text WIFI:T:WPA;S:<SSID>;P:<Schlüssel>;; (bei WPA3 T:SAE, bei verstecktem Netz zusätzlich H:true;); die Zeichen \ ; , : " in SSID und Schlüssel werden dabei maskiert. Save QR Code speichert ihn als wifi-qr.png.

.htpasswd — Benutzerzeile mit bcrypt oder APR1-MD5

Erzeugt eine fertige Zeile benutzer:hash für eine .htpasswd-Datei, mit der Apache oder nginx ein Verzeichnis per Basic Auth schützt. Gerechnet wird im Browser.

  • Username: Vorgabe admin; Leerzeichen und Doppelpunkte sind nicht erlaubt.
  • Algorithm:
    • bcrypt (recommended, htpasswd -B) (Vorgabe) — mit 16 Byte zufälligem Salt; das Präfix wird auf $2y$ gesetzt, wie es htpasswd -B schreibt.
    • APR1-MD5 (legacy, htpasswd -m) — das Apache-eigene MD5-Verfahren ($apr1$, 8 Zeichen Salt, 1.000 MD5-Runden).
  • bcrypt cost: 5, 8, 10 (Vorgabe), 12, 14 — der Arbeitsfaktor (höher = langsamer). Bei APR1 ist das Feld ausgeblendet.
  • Password: dein eigenes Passwort, oder Generate setzt ein 24-stelliges aus dem Zeichensatz less specials ein.

Create .htpasswd line schreibt das Ergebnis, etwa admin:$2y$10$…; Copy line kopiert die Zeile. Ist das Passwort länger als 72 Byte, weist das Tool darauf hin, dass bcrypt nur die ersten 72 Byte verwendet.

Der Hinweis unter dem Ergebnis nennt die Voraussetzungen: bcrypt braucht Apache 2.4 oder ein nginx, dessen System-crypt() bcrypt kann (libxcrypt, aktuelle Distributionen). APR1-MD5 funktioniert überall, ist aber schwach.

Passwort-Hashes — jetzt im Hash-Tool

Den früheren Reiter Hashes (BCrypt, Argon2i, Argon2id) gibt es im Generator nicht mehr. Passwort-Hashes für Anwendungen — bcrypt, Argon2id und PBKDF2, jeweils mit Prüfung eines vorhandenen Hashes — liegen jetzt im Hash-Generator; beschrieben sind sie in dessen Manual unter Passwort-Hashing. Der Link „Hash tool“ im Reiter .htpasswd öffnet dort direkt den Bereich für Passwort-Hashing. Argon2i bietet keines der beiden Tools mehr an.

OTP — TOTP-Einmalcodes (RFC 6238)

Richtet eine zeitbasierte Zwei-Faktor-Authentifizierung (TOTP) ein — vollständig im Browser über die Web-Crypto-API. Kompatibel mit gängigen Authenticator-Apps (Google Authenticator, Aegis und weitere).

Eingaben und Felder:

  • Account Name und Issuer (Aussteller/Dienstname) — wandern in das Label der Key-URL und des QR-Codes. Vorgaben: user@example.com bzw. My Service; ein leeres Feld fällt auf die Vorgabe zurück.
  • Secret (Base32) — das geheime Schlüsselmaterial. Beim Laden ist bereits ein 20-Byte-Secret eingetragen. Generate erzeugt ein neues, dessen Länge zum gewählten Algorithmus passt: 20 Byte bei SHA-1, 32 Byte bei SHA-256, 64 Byte bei SHA-512. Du kannst auch ein vorhandenes Secret einfügen; das Tool wandelt es in Großbuchstaben um und entfernt alles außer A–Z und 2–7, also auch Leerzeichen und =. Der Klemmbrett-Button daneben kopiert es. Für Codes, QR und URL muss das Secret mindestens 16 Zeichen haben.
  • Secret (Hex) — schreibgeschützte Hex-Darstellung desselben Secrets.
  • Interval — Gültigkeitsdauer eines Codes: 30 seconds (Vorgabe) oder 60 seconds.
  • Digits — 6 (Vorgabe) oder 8 Stellen.
  • Algorithm — SHA-1 (all apps) (Vorgabe), SHA-256 oder SHA-512. Der Hinweis darunter warnt: Viele Apps (etwa Google Authenticator) können nur SHA-1 mit sechs Stellen; ändere beides nur, wenn dein Dienst es verlangt. Wechselst du den Algorithmus, behält das Tool das vorhandene Secret; für eines in passender Länge klickst du danach Generate.
  • Check a code (from your app) — tipp hier den Code aus deiner Authenticator-App ein. Das Tool prüft ihn gegen das aktuelle Zeitfenster und je ein Fenster davor und danach und meldet ✓ valid now, ✓ valid (previous window), ✓ valid (next window) oder ✗ not valid.
  • Key URL (otpauth://) — die fertige URL otpauth://totp/<Issuer>:<Account>?secret=…&issuer=…&algorithm=…&digits=…&period=… (Label URL-kodiert) mit den gewählten Werten. Buttons Copy und Open (öffnet die URL in einem neuen Browserfenster).
  • QR-Code — wird aus der Key-URL gerendert (196 × 196 px, Fehlerkorrektur-Stufe M) und zwar als dunkle Module auf weißem Grund mit Ruhezone, damit Scanner und Authenticator-Apps ihn lesen. Save QR Code lädt ihn als otp-qr.png mit zusätzlichem weißem Rand herunter.

Live-Anzeige: Drei Codes nebeneinander — Previous, Current OTP (mit eigenem Copy-Button) und Next — sowie Infokarten zu Epoch (UTC), Iteration (T), Padded Hex (der Zähler als 16-stelliger Hexwert) und Remaining (Restsekunden), dazu eine Fortschrittsleiste, die bei ≤ 10 s gelb und bei ≤ 5 s rot wird. Die Anzeige aktualisiert sich jede Sekunde.

Text-API für Skripte

Für Shell-Skripte und Automatisierung beantwortet der Generator einfache GET-Anfragen mit reinem Text (text/plain, mit no-cache-Headern). Hier erzeugt der Server die Werte (PHP random_int(), für Hex random_bytes()), mit denselben Zeichensätzen wie die Seite. Die Zahl am Ende ist die Länge:

Endpunkt Ergebnis Erlaubte Länge
pw/<n>/ Passwort, more specials 1–64
pwl/<n>/ Passwort, less specials 1–64
pws/<n>/ Passwort, alphanumerisch 1–64
pwvs/<n>/ Hex-String 1–64
salt/<n>/ Salt-Key 1–1024
wp/<n>/ acht WordPress-Schlüssel als define() 1–128
wpx/<n>/ Extreme Keys 1–128
wlan/<n>/ WLAN-Key mit Sonderzeichen 20–63
wlana/<n>/ WLAN-Key alphanumerisch 20–63
apw/<n>/, apwl/<n>/, apws/<n>/, apwvs/<n>/ Passwort (Zeichensatz wie pw … pwvs) plus APR1-MD5-Hash 1–64
curl -s https://www.jpkc.com/tools/generator/pw/32/
curl -s "https://www.jpkc.com/tools/generator/wpx/64/?rotation=none&ip=0&ua=0&server=1"

wpx nimmt die Parameter rotation (none, hourly, daily, weekly, monthly) sowie ip, ua und server (1 = an, 0 = aus). Ohne Parameter gelten dieselben sicheren Vorgaben wie in der Oberfläche: keine Rotation (none), nur die Server-Adresse (ip=0, ua=0, server=1). Rotation, Client-IP und User-Agent schaltest du nur ausdrücklich zu. Die apw*-Endpunkte antworten mit zwei Blöcken Password: und APR1-MD5:.

Liegt die Länge außerhalb des Bereichs, kommt statt Text die normale HTML-Seite zurück. Pro IP-Adresse sind 120 Anfragen in 60 Sekunden erlaubt; darüber antwortet der Server mit HTTP 429 und einem Retry-After-Header.

Grenzen — kompakt

  • Passwörter (Seite): 4–128 Zeichen, bis zu 20 auf einmal; Apple-Stil 3–9 Blöcke (20–62 Zeichen); Passphrasen 3–12 Wörter.
  • Salt-Keys: 16 bis 1024 Zeichen.
  • WLAN-Keys: 20 bis 63 Zeichen; Wi-Fi-QR für WPA/WPA2 oder WPA3 (SAE).
  • WordPress-Keys: acht Schlüssel; Länge 64/72/96/128; wp-config.php oder .env.
  • .htpasswd: bcrypt (Cost 5–14, $2y$, nutzt höchstens 72 Byte des Passworts) oder APR1-MD5.
  • TOTP: SHA-1/-256/-512, 6 oder 8 Stellen, Periode 30 oder 60 s; Secret 20/32/64 Byte (Base32), Codes und QR ab 16 Zeichen Secret; Code-Prüfung ±1 Zeitfenster.
  • Text-API: Passwörter 1–64, Salt 1–1024, WordPress 1–128, WLAN 20–63; 120 Anfragen pro Minute und IP.
  • Datenschutz: Auf der Seite entsteht alles im Browser; nur die Text-API erzeugt serverseitig, mit no-cache.

Für die Zielgruppen und das große Bild siehe die Übersicht. Konkrete Abläufe zeigen die Beispiele, Strategie und Stolperfallen die Tipps & Tricks. Ausprobieren kannst du alles direkt im Tool.