Passwort-Generator & Validator-Tool

Professionelles Tool zur Generierung und Validierung von Passwörtern, das sichere Passwörter und merkbare Passphrasen erstellt – mit Unterstützung für Stapelgenerierung, Einmaligkeitsgarantie, Sicherheitsbewertung und Richtlinienvalidierung. Ausstattung: kryptographisch sichere Zufallsquelle, konfigurierbare Zeichensätze, Filterung ähnlicher Zeichen, Statistik zur Duplikatvermeidung im Stapel und Kopieren mit einem Klick. Enthält mehrsprachige Codebeispiele, Passwort-Wissensdatenbank, Sicherheitsrichtlinien und Tools zur Richtlinientestung. Alle Vorgänge laufen lokal in deinem Browser – so bleiben Privatsphäre und Sicherheit gewährleistet.

Passwortgenerator

Symboldgruppen auswählen
Tipp: Schließen Sie Zeichen aus, indem Sie Gruppen auswählen oder direkt auf einzelne Zeichen klicken.
Ergebnis

Passwortrichtlinien-Tester

Ergebnisse
  • Länge
  • Kleinbuchstaben
  • Großbuchstaben
  • Ziffern
  • Sonderzeichen
  • Sequenziell
  • Wiederholungen
  • Sperrliste
Alle Prüfungen werden lokal in deinem Browser durchgeführt.

Passphrasengenerator

Wörter werden gleichmäßig und kryptografisch sicher zufällig (mit Web Crypto) aus einer Liste von 1271 eindeutigen Wörtern ausgewählt; 6 Wörter ergeben etwa 62 Bit Entropie – nutze 8 Wörter für mehr Stärke.

Passwort-Hashing-Cheat Sheet

Argon2id
  • Verwenden Sie Argon2id mit angemessenen speicherintensiven Parametern
  • Zeit ≥ 2 Durchläufe, Speicher ≥ 64MB (an die Umgebung anpassen)
  • Speichern Sie pro Benutzer ein einzigartiges Salt; optional können Sie eine Pepper auf Anwendungsebene verwenden
PBKDF2
  • Wählen Sie SHA-256 oder SHA-512 mit Iterationen ≥ 210k (bei Bedarf anpassen)
  • Verwenden Sie pro Hash ein einzigartiges Salt; unterstützen Sie Parameter-Upgrades
  • Migrieren Sie bei der nächsten Anmeldung des Benutzers zu Parametern mit höherer Kosten
BCrypt
  • Legen Sie die Kosten zwischen 10–14 fest, abhängig von der Serverkapazität
  • Vermeiden Sie Abbruchprobleme; hashen Sie das gesamte Passwort
  • Implementieren Sie Ratenbegrenzung und Überwachung auf Authentifizierungsendpunkten
Quelle: NIST SP 800-63B, OWASP ASVS. Parameter müssen mit den Hardwarekapazitäten und SLOs übereinstimmen.

Passwortstärke-Prüfer

Die Stärke wird über Entropie approximiert: Entropie = log2(Größe des Zeichensatzes) × Länge. Ein größerer Zeichensatz und eine längere Länge verbessern die Widerstandsfähigkeit gegen Ratversuche.

  • Schwach: < 50 Bit —— Nur für einmalige Zwecke oder geringwertige Szenarien geeignet
  • Durchschnittlich: 50–80 Bit —— Akzeptabel für Szenarien mit geringem Risiko
  • Stark: 80–110 Bit —— Empfohlener Standardwert
  • Ausgezeichnet: > 110 Bit —— Empfohlen für Admin- oder kritische Konten

Hinweis: Angriffsmodelle in der Praxis können abweichen; vermeide die Wiederverwendung von Passwörtern und aktiviere die Zwei-Faktor-Authentifizierung (MFA).

Anwendung

  • Wähle Länge und Zeichensatz (Kleinbuchstaben/Großbuchstaben/Ziffern/Symbole); aktiviere optional „Ähnliche Zeichen vermeiden“ und „Jedes erforderliche“
  • Für feinere Steuerung: Schließe bestimmte Zeichen oder Zeichengruppen aus oder wähle Symbol-Untergruppen
  • Wählen Sie aus, wie viele Passwörter generiert werden sollen, und klicken Sie auf Generieren; Batch-Ergebnisse werden automatisch dedupliziert und können auf einmal kopiert werden
  • Zur Validierung vorhandener Passwörter nutze den Richtlinientester; für merkbare Passphrasen nutze den Passphrasen-Generator

Funktionen

  • Kryptographisch sichere Zufallsquelle (Web Crypto)
  • Konfigurierbare Zeichensätze und Symbolsgruppen
  • Filterung ähnlicher Zeichen und individuelle Ausschlüsse
  • Batch-Generierung von 1–100 Passwörtern, immer einzigartig
  • Sicherheits- und Entropiemetriken
  • Richtlinientester und Passphrasen-Generator
  • Mehrsprachige Codebeispiele
  • Kopieren mit einem Klick (einzeln oder alles)

Beispiele zur Passwortgenerierung

Sicher
Länge 24, enthält Großbuchstaben, Kleinbuchstaben, Ziffern und Symbole
Merkbar
Länge 16, enthält Großbuchstaben, Kleinbuchstaben und Ziffern; vermeidet ähnliche Zeichen

Passwort-Wissensdatenbank

1) Passwortsicherheit und Entropie
  • Entropie ≈ log2(Zeichensatzgröße) × Länge; die Länge trägt meist mehr zum Sicherheitsniveau bei
  • Empfohlene Werte: Allgemeine Konten ≥ 80 Bits; Konten mit hohen Rechten oder Finanzkonten ≥ 110 Bits
  • Größerer Zeichensatz + längere Länge → höherer Schutz vor Ratenangriffen
2) Länge vs. Komplexität
  • Das wahllose Hinzufügen von Symbolen ist weniger effektiv als die Erhöhung der Länge
  • Vermeide vorhersehbare Muster (z. B. immer „Erster Buchstabe groß + abschließende Zahl!“)
  • Priorisiere eine ausreichende Länge, dann erhöhe moderat die Zeichenvielfalt
3) Häufige Fehler und Sicherheitslücken
  • Tastatursequenzen (z. B. qwerty), wiederholte Blöcke, Geburtstage oder Jahre sind leicht angreifbar
  • Die Kombination aus „Stamm-Passwort + Domain-Endung“ führt zu variierender Wiederverwendung, bündelt Risiken und macht Passwörter leichter erratbar
  • Nutze niemals dasselbe Passwort für mehrere Websites
4) Empfehlungen zur Passwortverwaltung
  • Nutze einen Passwort-Manager; sichere eindeutige Passwörter pro Website; aktiviere MFA für kritische Konten
  • Vermeide die Übertragung von Passwörtern im Klartext über öffentliche Kanäle; nutze bei Bedarf „aussprechbare“ Passphrasen
  • Ändere Passwörter sofort und mache sie eindeutig, falls eine Durchleckung oder Wiederverwendung erkannt wird
5) Richtlinien für Passphrasen
  • Kombinationen aus 4–6 zufälligen Wörtern sind in der Regel sicher und leicht merkbar
  • Trennzeichen mischen, Anfangsbuchstaben großschreiben und Zahlen einfügen, um Stärke und Lesbarkeit zu verbessern
  • Vermeiden Sie das direkte Verbinden von gängigen Phrasen, Songtexten oder bekannten Zitaten

Sicherheitsrichtlinien für Passwörter

Bewährte Verfahren
  • Verwenden Sie ausreichende Länge: 16+ Zeichen für allgemeine Konten, 24+ für kritische Konten
  • Für die Merkbarkeit priorisieren Sie Passphrasen; verwenden Sie einen Passwort-Manager, um zufällige, hochstarke Passwörter zu speichern
  • Aktivieren Sie nach Möglichkeit die Multifaktor-Authentifizierung (MFA)
  • Verwenden Sie niemals dieselben Passwörter auf verschiedenen Seiten – jedes Konto sollte ein einzigartiges Passwort haben
Entropie und Stärke

Die Entropie misst die Unvorhersehbarkeit basierend auf Länge und Größe des Zeichensatzes – je höher die Entropie-Bits, desto stärker ist das Passwort in der Regel.

  • Priorisieren Sie die Erhöhung der Länge für maximalen Stärkegewinn
  • Verwenden Sie nach Möglichkeit mehrere Zeichensätze
  • Das Ausschließen zu vieler Zeichen verringert den Zeichenpool und schwächt die Stärke
Richtlinien und Rotation
  • Bevorzugen Sie Längenanforderungen und Sperrlisten für gängige/geleakte Passwörter statt komplexer Zusammensetzungsregeln
  • Vermeiden Sie häufige obligatorische Rotationen; ändern Sie Passwörter nur, wenn ein Verstoß oder Risiko erkannt wird
  • Verwenden Sie Listen kompromittierter Passwörter, um häufig verwendete oder geleakte Passwörter zu blockieren
Passphrasen
  • Verwenden Sie 4–6 zufällige Wörter, die durch Trennzeichen verbunden sind, z. B. see-KAROT-planet_7
  • Vermeiden Sie bekannte Zitate, Songtexte oder andere gängige Phrasen; Zufälligkeit ist wichtiger als „Kreativität“
  • Verwenden Sie für kritische Konten einen Passwort-Manager, um wirklich hochentropische zufällige Passwörter zu speichern
Generierungseinstellungen Tipps
  • „Jeden ausgewählten Satz erfordern“ stellt sicher, dass mindestens ein Zeichen aus jeder gewählten Kategorie erscheint
  • „Ähnliches vermeiden“ verbessert die Lesbarkeit, verringert aber leicht die Größe des Zeichenpools
  • Symbole können auf eine Teilmenge beschränkt werden, die vom Zielsystem unterstützt wird
Speicherung auf Serverseite
  • Speichern Sie Passwörter niemals im Klartext; verwenden Sie starkes Hashing (Argon2id/PBKDF2/Bcrypt) mit Salt
  • Konfigurieren Sie Parameter (Speicher/Zeit/Kosten) angemessen; erwägen Sie die Verwendung eines Peppers bei Bedarf
  • Setzen Sie Rate-Limiting bei Anmeldeversuchen ein und überwachen Sie Fehler; setzen Sie CAPTCHAs oder Geräteüberprüfungen bei Angriffen ein
Multifaktor und Wiederherstellung
  • Bevorzugen Sie TOTP oder Hardware-Schlüssel; vermeiden Sie SMS nach Möglichkeit
  • Sichern Sie Wiederherstellungsabläufe durch Multifaktor- oder E-Mail-Verifizierung und erzwingen Sie Abkühlphasen
  • Stellen Sie Wiederherstellungscodes zur Verfügung und ermutigen Sie Benutzer, diese sicher aufzubewahren
Schutz vor Brute-Force-Angriffen
  • Implementieren Sie progressive Verzögerungen oder Sperrungen mit IP-/Geräte-Risikobewertung
  • Wenden Sie WAFs und Rate-Limiting auf APIs und Anmeldeformulare an
  • Überwachen Sie Credential Stuffing und ermutigen Sie Benutzer, einzigartige Passwörter zu verwenden
Lokale Speicherung und Handhabung
  • Verwenden Sie einen seriösen Passwort-Manager zur Speicherung und automatischen Ausfüllung
  • Teile niemals Passwörter im Klartext per Chat oder E-Mail; nutze Geheimnisverwaltungstools für Teams
  • Wenn du Passwörter offline notierst, sichere sie physisch
Haftungsausschluss: Dieses Tool generiert Passwörter lokal in deinem Browser mit Web Crypto; es werden keine Daten an Server gesendet.

Passwörter via Programmiersprachen generieren

JavaScript (Web Crypto)
function randomPassword(length = 16, sets = {lower:true, upper:true, digits:true, symbols:true}) {
  const pools = {
    lower: 'abcdefghijklmnopqrstuvwxyz',
    upper: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
    digits: '0123456789',
    symbols: '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
  };
  let pool = '';
  for (const k of Object.keys(sets)) if (sets[k]) pool += pools[k];
  if (!pool) throw new Error('No charset');
  // Rejection sampling removes modulo bias
  const limit = Math.floor(0x100000000 / pool.length) * pool.length;
  const buf = new Uint32Array(1);
  let out = '';
  for (let i = 0; i < length; i++) {
    do { crypto.getRandomValues(buf); } while (buf[0] >= limit);
    out += pool[buf[0] % pool.length];
  }
  return out;
}
Python (secrets)
import secrets

def random_password(length=16, lower=True, upper=True, digits=True, symbols=True):
    pools = {
        'lower': 'abcdefghijklmnopqrstuvwxyz',
        'upper': 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        'digits': '0123456789',
        'symbols': '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
    }
    pool = ''.join(v for k, v in pools.items() if locals()[k])
    if not pool:
        raise ValueError('No charset')
    return ''.join(secrets.choice(pool) for _ in range(length))
PHP (random_int)
function random_password($length = 16, $sets = ['lower'=>true,'upper'=>true,'digits'=>true,'symbols'=>true]) {
    $pools = [
        'lower' => 'abcdefghijklmnopqrstuvwxyz',
        'upper' => 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',
        'digits' => '0123456789',
        'symbols' => '!@#$%^&*+-=_~`|/?()[]{}<>,.;:\'\"'
    ];
    $pool = '';
    foreach ($sets as $k => $on) if ($on) $pool .= $pools[$k];
    if ($pool === '') throw new Exception('No charset');
    $out = '';
    for ($i = 0; $i < $length; $i++) {
        $out .= $pool[random_int(0, strlen($pool)-1)];
    }
    return $out;
}
Go (crypto/rand)
package main

import (
  "crypto/rand"
  "math/big"
)

func RandomPassword(length int, pool string) (string, error) {
  out := make([]byte, length)
  for i := 0; i < length; i++ {
    nBig, err := rand.Int(rand.Reader, big.NewInt(int64(len(pool))))
    if err != nil { return "", err }
    out[i] = pool[nBig.Int64()]
  }
  return string(out), nil
}
Java (SecureRandom)
import java.security.SecureRandom;

public class Pw {
  static final String POOL = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*+-=_~`|/?()[]{}<>,.;:'\"";
  static final SecureRandom SR = new SecureRandom();
  static String randomPassword(int length) {
    StringBuilder sb = new StringBuilder(length);
    for (int i = 0; i < length; i++) {
      int idx = SR.nextInt(POOL.length());
      sb.append(POOL.charAt(idx));
    }
    return sb.toString();
  }
}
C# (.NET RandomNumberGenerator)
using System;
using System.Security.Cryptography;

public static class Pw {
  public static string RandomPassword(int length, string pool) {
    // GetInt32 draws an unbiased value in [0, pool.Length)
    var chars = new char[length];
    for (int i = 0; i < length; i++) {
      chars[i] = pool[RandomNumberGenerator.GetInt32(pool.Length)];
    }
    return new string(chars);
  }
}
Rust (rand + getrandom)
use rand::rngs::OsRng;
use rand::Rng;

fn random_password(length: usize, pool: &str) -> String {
    // gen_range is uniform, so there is no modulo bias
    let chars: Vec = pool.chars().collect();
    (0..length)
        .map(|_| chars[OsRng.gen_range(0..chars.len())])
        .collect()
}

fn main() {
    let pool = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*+-=_~`|/?()[]{}<>,.;:'\"";
    let pw = random_password(16, pool);
    println!("{}", pw);
}