Diceware-lösenfrasgenerator — slumpmässiga ordlösenfraser
Skapa starka, minnesvärda lösenfraser byggda från slumpmässiga riktiga ord med hjälp av Diceware-metoden - äkta kryptografisk slumpmässighet, med den faktiska entropin i bitar visad ärligt.
Resultat
Det här verktyget genererar lösenfraser på Diceware-sättet: istället för en tät sträng av slumpmässiga tecken som är svåra att skriva och ännu svårare att komma ihåg, sammanfogar det flera vanliga ord som plockas oberoende av varandra slumpmässigt. En lösenfras som "skog-komet-lykta-gitarr-oasis-tistel" bär på verklig, beräkningsbar entropi samtidigt som den fortfarande är något som en människa kan läsa högt, skriva på telefonens tangentbord eller memorera efter några försök - vilket är exakt den avvägning som Diceware-stilen skapades kring.
Slumpmässighet är hela poängen, så det tas på allvar här: varje ord väljs med hjälp av webbläsarens crypto.getRandomValues() kryptografiskt säkra slumptalsgenerator, med korrekt avvisningssampling vid varje dragning. Ett rått 32-bitars slumpmässigt värde accepteras endast om det faller inom ett område som är jämnt delbart med ordlistans längd; värden i det överblivna, ojämna återstoden kasseras och rullas om. Att hoppa över det här steget och bara göra värde % wordlistLength skulle mycket lite gynna lågindexerade ord framför högindexerade - en subtil statistisk fördom som en naiv implementering skulle introducera tyst. Den här generatorn tar aldrig den genvägen.
Ärlighet om entropi är den andra halvan av designen. Den medföljande ordlistan har 1 821 unika, entydiga, vardagliga engelska ord - en stor representativ lista, men inte den specifika listan på 7 776 ord som används av det klassiska Diceware-projektet, så det här verktyget gör aldrig anspråk på den berömda siffran på 12,9 bitar per ord som bara gäller den exakta listan. Istället beräknas per-ord-entropin live som log2 (listlängd), vilket kommer ut till ungefär 10,8 bitar per ord här, och resultatet på skärmen visar alltid hela formeln - ordräkning gånger bitar-per-ord, plus det ärliga bidraget från eventuella extrafunktioner - så att du kan se exakt hur summan nåddes istället för att lita på ett marknadsföringsnummer.
De valfria växlarna behandlas med samma ärlighet. Att använda versaler i varje ord är en fast, deterministisk regel som tillämpas på samma sätt varje gång, så den lägger inte till någon verklig entropi alls - en angripare som känner till regeln vinner ingenting på att inte veta vilka bokstäver som är versaler, och verktyget säger så tydligt. Att lägga till ett slumpmässigt tvåsiffrigt tal, däremot, är en äkta extra slumpmässig dragning över 100 lika sannolika värden, som lägger till en riktig och angiven ~6,6 bitar ovanpå orden. Allt beräknas och renderas lokalt i din webbläsare utan någon server inblandad, så lösenfrasen du genererar ses aldrig av någon annan än dig.