Wachtwoordgenerator

Een wachtwoord uit de cryptografische generator voor toevalsgetallen van je browser, met de lengte en de tekengroepen die je kiest. Het ontstaat op je eigen machine en gaat nergens heen — bij een wachtwoord is dat geen beleefdheid maar de hele zaak: eentje dat over het netwerk naar je toe kwam, is er eentje dat iemand anders heeft kunnen zien.

20

Laat l, I, 1, O en 0 weg. Handig als je het van het scherm moet overtypen, en het kost een paar bits.

  • Waar het draait Er wordt niets geüpload, want er is geen bestand — het wordt in deze pagina uitgerekend.
  • Geen wachtrij, geen account Het antwoordt zo snel als je machine kan, en vraagt nooit wie je bent.
  • Zo vaak als je wilt Er wordt niets geteld en niets begrensd — nog eens antwoorden kost ons niets.

Hoe het werkt

  1. Kies een lengte. Twintig is een goede standaard; langer kost niets.
  2. Vink de tekengroepen aan die je nodig hebt. Sommige systemen weigeren nog steeds symbolen, daarom kun je ze uitzetten.
  3. Druk op Genereren. Het wachtwoord verschijnt meteen, met hoe sterk het is.
  4. Kopieer het rechtstreeks naar je wachtwoordmanager. Probeer het niet te onthouden — daar is de manager voor.

Waar het toeval vandaan komt

De tekens worden getrokken met `crypto.getRandomValues`, de cryptografische generator van de browser, gevoed uit de entropievoorraad van het besturingssysteem. Het alternatief, `Math.random`, zit in elke browser en valt hier af: het algoritme is openbaar, de interne toestand is klein, en die toestand terugrekenen uit een handvol uitkomsten is een opgelost probleem met gepubliceerde code. Een generator daarop levert wachtwoorden waarvan de werkelijke sleutelruimte zo groot is als die toestand, hoe lang het wachtwoord er ook uitziet.

Aan de uitkomst zie je het verschil niet. Juist daarom is het de moeite waard te zeggen welke wordt gebruikt, en daarom faalt er in dit project een test zodra `Math.random` in dat bestand opduikt.

De scheefheid die de meeste generatoren hebben

Een willekeurige byte omzetten in een willekeurig teken schrijf je meestal als `byte % aantal`, en dat is subtiel fout zodra 256 niet deelbaar is door de omvang van het alfabet. Bij zesentwintig letters dekken de bytes 0 tot 255 `a` tot `v` elk tien keer en `w` tot `z` maar negen: de eerste tweeëntwintig komen ongeveer 11% vaker voor.

Het is een klein gebrek en het is echt, en het is verreweg het meest voorkomende in generatoren van dit soort. De oplossing is de waarden in die korte staart weggooien en opnieuw trekken, wat één lus kost en gemiddeld minder dan twee trekkingen per teken. Dat is wat hier gebeurt.

Wat het entropiegetal betekent

Entropie wordt in bits uitgedrukt en is de eerlijke manier om de sterkte van een wachtwoord te beschrijven: elke bit verdubbelt het aantal benodigde pogingen. Twintig tekens uit alle vier de groepen zijn ongeveer 130 bits, dus ruwweg 2^130 mogelijkheden — een getal zonder fysieke betekenis, en dat is precies de bedoeling.

Het maakt de afwegingen ook zichtbaar. Symbolen weglaten bij twintig tekens kost ongeveer 11 bits. Verwarrende tekens weglaten kost er ongeveer 3. Vier tekens erbij levert er ongeveer 26 op. Daarom wint lengte het altijd van complexiteit: die vier extra tekens zijn meer waard dan alle symbolen op het toetsenbord, en ze zijn makkelijker te accepteren bij een wachtwoord dat je toch nooit met de hand typt.

Elke aangevinkte groep komt gegarandeerd voor

Vink je cijfers aan, dan zit er een cijfer in. Dat gaat niet vanzelf: twintig tekens willekeurig uit een gemengd alfabet trekken laat een reële kans dat er uit een van de groepen niets bij zit, en het resultaat is een wachtwoord dat een beleidsregel afwijst en dat je opnieuw moet maken.

De tekens die dat waarborgen worden eerst geplaatst en daarna wordt alles geschud, anders begon elk wachtwoord met een kleine letter, dan een hoofdletter, dan een cijfer, dan een symbool — een patroon dat de eerste tekens uit het raadwerk van een aanvaller haalt. De garantie kost een fractie van een bit, ruim onder de afronding van het getoonde getal.

Een generator is maar de helft

Een sterk wachtwoord dat je hergebruikt is een zwak wachtwoord, want de sterkte doet er niet meer toe zodra een van de sites die het kent wordt gekraakt. De waarde van genereren zit erin dat elk account een eigen wachtwoord krijgt, en dat werkt alleen als iets ze voor je onthoudt.

Gebruik dus een wachtwoordmanager, welke dan ook, ook die al in je browser zit. De generator hier is voor het moment dat je voor een formulier staat; wat hem waardevol maakt is dat het resultaat ergens terechtkomt waar je het terugvindt.

Wachtwoordgenerator: veelgestelde vragen

Wordt het wachtwoord naar een server gestuurd?

Nee, en dit is het hulpmiddel op de site waar dat het meest telt. Het wordt door je eigen browser gemaakt en bestaat alleen in de pagina tot je het kopieert. Er wordt niets geüpload, niets vastgelegd en er is geen account nodig. Een wachtwoordgenerator die op een server draait, is een generator waarvan iemand anders de uitkomst heeft gezien.

Hoe lang moet mijn wachtwoord zijn?

Zestien is een verstandige ondergrens en twintig is beter. Voorbij een stuk of dertig valt er tegen geen enkele realistische aanvaller nog iets te winnen, dus de lengte wordt alleen begrensd door wat het systeem accepteert. Omdat je het zou moeten plakken en niet typen, kost lengte je niets.

Moet ik verwarrende tekens uitzetten?

Alleen als je het wachtwoord van een scherm moet aflezen om het elders in te typen: op een televisie, van een uitdraai, op een apparaat zonder klembord. Het verkleint het alfabet en kost een paar bits, wat het entropiegetal je laat zien zodra je het aanzet.

Kan hetzelfde wachtwoord twee keer voorkomen?

In geen zinnige betekenis. Met de standaardinstellingen zijn er ongeveer 2^130 mogelijke uitkomsten, dus een herhaling gebeurt niet, ook niet als ieder levend mens er elke seconde een maakte, de hele ouderdom van het heelal lang.

Is het gratis?

Ja, zonder account en zonder grens aan het aantal. Het draait op jouw machine, dus het kost ons niets om je nog eens op de knop te laten drukken.

Andere hulpmiddelen