Password Generator
Generate secure, random passwords client-side
Symbol set:
!@#$%&*-_=+.?
Hoe deze generator werkt
Elk karakter wordt getrokken uit crypto.getRandomValues() — dezelfde cryptografische willekeurige-nummergenerator die je browser gebruikt voor TLS-handshakes en WebCrypto-bewerkingen. Hij haalt entropie uit de kernel van je besturingssysteem, niet uit een JavaScript Math.random() polyfill.
We passen ook rejection sampling toe wanneer we willekeurige bytes mappen op karakterindices. Dit is een klein detail dat de meeste wachtwoordgeneratoren verkeerd doen: als je gewoon willekeurigeByte % karakterSetGrootte berekent, introduceer je een kleine maar reële vertekening ten gunste van de lagere karakters in de set (omdat 256 niet gelijkmatig deelbaar is door, bijvoorbeeld, 94). De vertekening is meestal te klein om relevant te zijn, maar voor een tool die expliciet als cryptografisch wordt gepresenteerd is correctheid belangrijk.
De twee symboolsets, uitgelegd
Symbolen kiezen voor wachtwoorden is moeilijker dan het lijkt. De volledige set (!@#$%^&*()-_=+[]{};:,.<>?/|~\'\"\\`) levert meer entropie per karakter, maar creëert wrijving:
- Bank- en overheidssites weigeren vaak stilletjes bepaalde symbolen.
- Verouderde formuliervalidators strippen of coderen symbolen als HTML.
- Mobiele toetsenborden maken
{en~onhandig.
Standaard gebruiken we een veilige set (!@#$%&*-_=+.?) die in 95%+ van de formulieren werkt. Als je maximale entropie nodig hebt en de site alles accepteert, schakel "Uitgebreide set" in voor de volledige set.
Wat "sterk" betekent
De sterktebalk is gebaseerd op Shannon-entropie — het aantal willekeurige bits in je wachtwoord. Elk bit verdubbelt het aantal pogingen dat nodig is om het te brute-forcen.
| Beoordeling | Entropie | Brute-force tijd bij 1T pogingen/sec |
|---|---|---|
| Zwak | < 28 bits | Seconden |
| Redelijk | 28–49 bits | Uren tot dagen |
| Sterk | 50–71 bits | Decennia |
| Zeer sterk | 72+ bits | Eeuwen |
Waarom er niets wordt opgeslagen
Deze pagina slaat je wachtwoord nergens op. De gegenereerde string leeft in het browsergeheugen totdat je herlaadt, kopieert of een nieuwe genereert. Geen localStorage, geen fetch-aanroepen, geen analytics-events met het wachtwoord. De pagina genereert er bij het laden niet eens automatisch een — je drukt op Genereren wanneer je er een wilt.
Als je wachtwoordopslag met synchronisatie wilt, gebruik dan een speciale wachtwoordmanager. Deze tool bestaat voor het moment dat je een sterk wachtwoord moet verzinnen en er niet over wilt nadenken.
Online versus offline aanvallen — waarom hetzelfde wachtwoord tegelijk "zwak" en "prima" is
Wanneer je een wachtwoord in een inlogformulier typt, wordt je poging gecontroleerd door de server van de site. Moderne diensten letten daar scherp op: na drie of vijf foute pogingen wordt het account tijdelijk geblokkeerd, vraagt het om een captcha of stuurt het een "verdachte activiteit"-mail. Zelfs met een gelekte wachtwoordlijst kan een aanvaller misschien 5–10 pogingen per minuut doen voordat hij wordt geblokkeerd — en zelfs met een klein leger bots dat de pogingen verdeelt, is het lastig om voorbij een paar honderd per uur te komen. Dit heet rate limiting. Tegen een aanvaller die vastzit op honderden pogingen per uur is een wachtwoord van 8 kleine letters (28 bits entropie, ~200 miljard mogelijkheden) prima. Hij kan er simpelweg niet genoeg proberen.
Het rampscenario is anders. Sites worden gehackt, databases worden gedumpt, wachtwoordkluizen lekken, versleutelde back-ups worden gestolen. Als dat gebeurt, heeft de aanvaller een *kopie* van de gegevens op zijn eigen machine. Geen rate limit. Geen blokkade. Hij kan er een GPU-farm op loslaten — miljarden pogingen per seconde. Hetzelfde wachtwoord van 8 tekens dat eeuwig standhield tegen het inlogformulier valt binnen een paar seconden. Het dreigingsmodel kantelt op het moment dat de gegevens de gecontroleerde omgeving van de server verlaten.
Daarom scoort hetzelfde wachtwoord als "zwak" op de balk, ook al is het voor de meeste toepassingen volkomen veilig. De balk gaat uit van het slechtste geval: iemand heeft de versleutelde blob en kan die offline op volle snelheid aanvallen.
Wat een wachtwoordmanager echt voor je doet
Een wachtwoordmanager lost het offline-aanvalsprobleem op een manier op die mensen alleen niet kunnen: hij laat je voor elke site een uniek willekeurig wachtwoord van 20+ tekens gebruiken, zonder dat je brein er ook maar één hoeft te onthouden. Je onthoudt één hoofdwachtwoord — het jouwe, zorgvuldig gekozen, lang, idealiter met woorden die je nooit vergeet — en de manager regelt de rest. Als een site wordt gehackt, wordt alleen dat ene wachtwoord blootgesteld, en het is een willekeurige string van 20 tekens die geen enkele offline-aanval binnen nuttige tijd kraakt. De straal van de ramp daalt van "al mijn accounts" naar "dit ene account, dat ik vervang".
Als je vandaag geen wachtwoordmanager gebruikt, is dat misschien wel de grootste upgrade van wachtwoordbeveiliging die voor je beschikbaar is, en het kost minder dan een koffie per maand (of is in sommige gevallen gratis). Onze generator bestaat voor het moment dat je een sterk willekeurig wachtwoord nodig hebt en niet wilt nadenken — maar het wachtwoord dat hij je geeft is het nuttigst wanneer het ergens duurzaam wordt opgeslagen, niet onthouden.