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
-
#
Passwortrichtlinien-Tester
- Länge
- Kleinbuchstaben
- Großbuchstaben
- Ziffern
- Sonderzeichen
- Sequenziell
- Wiederholungen
- Sperrliste
Passphrasengenerator
Passwort-Hashing-Cheat Sheet
- 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
- 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
- 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
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)
Passwort-Wissensdatenbank
- 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
- 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
- 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
- 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
- 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
- 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
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
- 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
- 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
- „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
- 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
- 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
- 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
- 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
Passwörter via Programmiersprachen generieren
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;
}
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))
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;
}
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
}
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();
}
}
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);
}
}
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);
}