# Generator — Tipps & Tricks

> Kniffe für den Generator: Passwort-Stärke, Cost-Faktor wählen, BCrypt vs. Argon2, TOTP-Sicherheit und die Kombination mit Hash, Cryptor und PKI.

Source: https://www.jpkc.com/db/tools/generator/tips/

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

Das [Manual](https://www.jpkc.com/db/tools/generator/manual/) erklärt jeden Reiter, die [Beispiele](https://www.jpkc.com/db/tools/generator/examples/) zeigen die Abläufe. Hier geht es um die Entscheidungen dahinter: wie stark ein Passwort wirklich sein muss, welchen Cost-Faktor du wählst, wann BCrypt und wann Argon2 — und wo du die Ergebnisse danach einsetzt.

## Passwort-Stärke: Länge schlägt Zeichensatz

- **Länge ist der wichtigste Hebel.** Jedes zusätzliche Zeichen multipliziert die Möglichkeiten. Ein 24-Zeichen-Passwort aus nur Buchstaben und Ziffern ist sicherer als ein 10-Zeichen-Passwort mit allen Sonderzeichen. Im Zweifel die **Length** hochziehen, statt an Sonderzeichen zu feilen.
- **Sonderzeichen nur, wo das Zielsystem mitspielt.** Manche Logins, Datenbanken oder `.env`-Dateien zicken bei `§`, `&`, `/` oder Leerzeichen. Dafür gibt es die Stufe `less specials` (kompatibler) und `a-z + A-Z + 0-9` (rein alphanumerisch, fast überall sicher einsetzbar).
- **Hex für Tokens, nicht für Menschen.** Die Stufe `a-f + 0-9 (hex)` liefert einen sauberen, gut kopierbaren String für API-Tokens und maschinelle Keys — zum Merken ist sie wegen des kleinen Alphabets ungeeignet.
- **Apple-Stil ist der Kompromiss für Merkbares.** Aussprechbar, mit Bindestrichen segmentiert und trotzdem mit Ziffer und Großbuchstabe — ideal für ein Master- oder Geräte-Passwort, das ein Mensch eintippen muss. Für rein maschinelle Geheimnisse nimm lieber die maximale Länge im Standard-Zeichensatz.
- **Jeder Wert ist ein Einmalwert.** Generierst du erneut, ist der alte weg — kopier ihn, bevor du den Reiter wechselst oder neu generierst.

## Cost-Faktor und Argon2-Speicher klug wählen

Beim Passwort-Hashing ist die **Langsamkeit das Sicherheitsmerkmal**: Je teurer der Hash, desto teurer ein Brute-Force-Angriff — aber desto länger dauert auch jeder legitime Login.

- **BCrypt Cost** ist exponentiell: `10 (default)` ist ein solider Allerwelts-Wert. `12 (slow)` etwa vervierfacht den Aufwand gegenüber 10 (daher der Hinweis „~3–8 s" je nach Gerät) — sinnvoll für sensible Konten, wenn die Login-Latenz vertretbar ist. `8 (fast)` nur für Tests oder sehr schwache Hardware.
- **Argon2 Memory** macht den Hash **speicherhart** — das ist genau die Eigenschaft, die GPU- und ASIC-Angriffe ausbremst. `64 MB (OWASP)` ist die empfohlene Vorgabe. Mehr Speicher (`256 MB`) erhöht die Sicherheit, kostet aber pro Hash spürbar Rechenzeit und RAM; auf gemeinsam genutzten Servern mit vielen parallelen Logins kann das zum Engpass werden.
- **Test vs. Produktion.** Was hier im Browser ein paar Sekunden dauert, läuft auf deinem Server bei jedem Login. Wähle den Faktor so, dass er auf deiner Zielhardware noch komfortabel ist — nicht so, wie er hier im Tool gerade erträglich war.

## BCrypt vs. Argon2 — und wann APR1-MD5

- **Neue Systeme: Argon2id.** Es kombiniert Schutz gegen GPU-Angriffe (speicherhart) und gegen Seitenkanal-Angriffe und ist die heutige Empfehlung, wenn deine Plattform es unterstützt (z. B. PHP `PASSWORD_ARGON2ID`).
- **Breite Kompatibilität: BCrypt.** Bewährt, überall verfügbar, gut verstanden. Wenn deine Sprache/Framework kein Argon2 kann oder Bestands-Hashes BCrypt sind, ist BCrypt die richtige Wahl.
- **Argon2i vs. Argon2id:** `Argon2id` ist die empfohlene Allzweck-Variante; reines `Argon2i` ist vor allem für spezielle Bedrohungsmodelle gedacht. Im Zweifel **Argon2id**.
- **APR1-MD5 ist kein Passwort-Hash für Anwendungen.** Es existiert **nur** für Apache-`.htpasswd`-Dateien (Basic Auth). MD5-basiert und kryptografisch schwach — nutze es ausschließlich für genau diesen Zweck und niemals zum Speichern von Anwendungs-Passwörtern. Für die brauchst du BCrypt oder Argon2.
- **Salt ist immer dabei.** Das Tool erzeugt für jeden BCrypt-/Argon2-Hash ein eigenes zufälliges Salt; du musst dich darum nicht kümmern. Identische Passwörter ergeben deshalb verschiedene Hashes — das ist korrekt und gewollt.

## TOTP-Sicherheit

- **Das Secret ist der Schlüssel zum Königreich.** Wer das Base32-Secret besitzt, kann jederzeit gültige Codes erzeugen. Behandle es wie ein Passwort: sicher übertragen, nicht in Klartext-Logs, nach der Einrichtung sicher verwahren oder löschen. Pluspunkt hier: Secret und Codes entstehen **vollständig in deinem Browser** und werden nie an einen Server gesendet.
- **Zeit muss stimmen.** TOTP hängt an der Uhr. Weicht die Zeit deines Servers oder Geräts stark ab, passen die Codes nicht. Die Infokarten **Epoch (UTC)** und **Iteration (T)** helfen beim Debuggen einer Zeitabweichung.
- **30 Sekunden ist Standard.** Fast alle Dienste erwarten `30 seconds`. Wähle `60 seconds` nur, wenn die Gegenseite das ausdrücklich verlangt — sonst akzeptiert die App die Codes nicht.
- **Parameter sind fix kompatibel.** Die Key-URL nutzt `algorithm=SHA1` und `digits=6` — genau das, was Standard-Authenticator-Apps erwarten. Das ist Absicht, kein Mangel.
- **Sichere den QR/das Secret als Backup.** Verlierst du den Zugriff auf den Authenticator, brauchst du das Secret zur Wiederherstellung. **Save QR Code** oder das kopierte Secret an einem sicheren Ort ist dein Notnagel.

## Wo Hashes verifiziert werden

Der Generator **erzeugt** Hashes, prüft sie aber nicht. Verifiziert wird immer auf der Zielseite:

- **BCrypt/Argon2** prüft deine Anwendung beim Login — z. B. in PHP mit `password_verify($eingabe, $hash)`. Der encoded-Hash trägt alle nötigen Parameter in sich, du musst nichts zusätzlich speichern.
- **APR1-MD5** prüft Apache selbst gegen die `.htpasswd`, sobald ein geschütztes Verzeichnis aufgerufen wird.
- **TOTP** prüft der Dienst, bei dem du den Code hinterlegt hast, gegen den jeweils aktuellen Zeitschritt.

## Mit anderen JPKCom-Tools kombinieren

- **Reine Prüfsumme statt Passwort-Hash?** Wenn du nicht ein Passwort sicher speichern, sondern Inhalte vergleichen oder eine Integritätsprüfung machen willst, nimm den **[Hash-Generator](https://www.jpkc.com/db/tools/hash/)** (MD5, SHA-1, SHA-256, SHA-512, RIPEMD-160). Faustregel: Passwörter → Generator (BCrypt/Argon2), Daten-Fingerabdruck → Hash-Generator.
- **Geheimnis verschlüsseln statt hashen?** Soll ein Wert wieder entschlüsselbar sein (Hashing ist es nicht), nutze den **[Cryptor](https://www.jpkc.com/db/tools/cryptor/)** für symmetrische Ver-/Entschlüsselung von Texten und Dateien.
- **Zertifikate und Schlüssel prüfen.** Hast du mit den hier erzeugten Geheimnissen eine TLS-/Auth-Infrastruktur aufgebaut, kannst du die zugehörigen X.509-Zertifikate und CSRs mit dem **[PKI Viewer](https://www.jpkc.com/db/tools/pki/)** untersuchen.
- **Eindeutige ID statt Geheimnis.** Brauchst du keinen geheimen Schlüssel, sondern einen eindeutigen Bezeichner (etwa als Datenbank-Key), liefert der **[UUID-Generator](https://www.jpkc.com/db/tools/uuid/)** das passende Format.

---

Noch mehr Kontext: die [Übersicht](https://www.jpkc.com/db/tools/generator/) zum großen Bild, das [Manual](https://www.jpkc.com/db/tools/generator/manual/) für jeden Parameter und die [Beispiele](https://www.jpkc.com/db/tools/generator/examples/) für die Schritt-für-Schritt-Abläufe. Ausprobieren kannst du alles direkt im [Tool](https://www.jpkc.com/tools/generator/).

