Generatore di password e UUID
Genera password casuali e UUID (v4 e v7) nel browser con la Web Crypto API ed esamina la versione e il timestamp di un UUID.
Generatore di password
Entropia = lunghezza × log2(numero di caratteri possibili). Questa stima vale solo per password generate in modo casuale, come quelle qui sotto.
Password generate
Generatore di UUID
Analizzatore di UUID
Note
- Password e UUID vengono generati nel browser con il generatore di numeri casuali della Web Crypto API. Non vengono inviati a LeedyBox né memorizzati da LeedyBox, quindi LeedyBox non può recuperarli. Salva le password che vuoi conservare in un gestore di password.
- Usa una password diversa per ogni account e attiva l’autenticazione a due fattori dove è disponibile.
- L’indicazione della robustezza è una stima. Non tiene conto di come un servizio memorizza la password né del fatto che la password sia comparsa in una violazione di dati.
- Un UUID v7 contiene l’ora in cui è stato creato, quindi chiunque lo veda può risalire al momento della generazione. Usa v4 quando questo è importante.
- Gli UUID sono identificatori. Non usarli come password o token segreti.
Come si usa
- Imposta la lunghezza (da 4 a 128, 16 per impostazione predefinita) con la casella numerica o con il cursore, e indica quante password vuoi nella casella «Numero di password (1–50)» (5 per impostazione predefinita). Ogni volta che modifichi un’opzione viene generato un nuovo elenco; se un valore è fuori intervallo o le impostazioni dei caratteri non si possono usare, un messaggio indica invece che cosa modificare.
- In «Caratteri», scegli quali set usare e, se serve, modifica il «Set di simboli». Attiva «Escludi i caratteri simili (I l 1 O 0 o)» se la password verrà letta ad alta voce o ricopiata da un foglio di carta.
- Controlla l’entropia stimata e l’indicazione della robustezza, poi premi «Copia» accanto a una password, oppure «Copia tutto» per copiare l’intero elenco con una password per riga. «Rigenera» crea un nuovo elenco con le stesse impostazioni.
- Per gli identificatori, vai a «Generatore di UUID», scegli v4 o v7 in «Versione», indica il numero di UUID (da 1 a 100, 5 per impostazione predefinita), attiva «Maiuscole», «Senza trattini» o entrambe le opzioni se il tuo sistema richiede quel formato, e premi «Genera UUID». Cambiare la versione o una delle due caselle crea un nuovo elenco di UUID diversi, invece di riformattare quelli attuali. Il pulsante «Copia tutto» accanto a «Genera UUID» copia l’elenco con un UUID per riga.
- Per controllare un UUID esistente, incollalo nella casella «Incolla un UUID» in «Analizzatore di UUID»; il risultato si aggiorna mentre scrivi. L’UUID viene accettato con o senza trattini, in maiuscolo o in minuscolo, tra parentesi graffe o con il prefisso urn:uuid:. Il risultato indica se è valido e mostra la forma normalizzata (in minuscolo con i trattini), la variante, la versione e, se l’UUID ne contiene uno, il timestamp; per gli UUID nil e max mostra il tipo al posto della variante e della versione.
Domande frequenti
Quanto sono casuali le password, ed è sicuro copiarle?
Ogni carattere viene scelto con crypto.getRandomValues, il generatore di numeri casuali crittograficamente sicuro integrato nel browser, usando il campionamento per rifiuto (rejection sampling) per evitare la distorsione di una semplice operazione di modulo; i caratteri vengono poi mescolati. L’elenco esiste solo nella pagina aperta e viene sostituito quando ricarichi la pagina, premi «Rigenera» o modifichi un’opzione. Una password copiata resta negli appunti finché qualcos’altro non la sostituisce, e le funzioni di cronologia o di sincronizzazione degli appunti possono conservarne una copia o trasmetterla agli altri tuoi dispositivi, quindi dopo averla incollata nel gestore di password copia qualcos’altro e rimuovi la voce dall’eventuale cronologia degli appunti.
Che cosa significano Debole, Discreta, Forte e Molto forte, e quanto dovrebbe essere lunga una password?
Sono fasce dell’entropia stimata: sotto i 40 bit è Debole, da 40 a meno di 60 Discreta, da 60 a meno di 80 Forte, e da 80 bit in su Molto forte. Ogni carattere aggiunge il log2 del numero di caratteri possibili, circa 6,4 bit con gli 85 predefiniti (tutti e quattro i set con i simboli predefiniti), quindi la lunghezza predefinita di 16 dà circa 102,6 bit, cioè Molto forte. Per una password casuale conservata in un gestore di password, una lunghezza nella fascia Molto forte è un obiettivo ragionevole, se il sito la accetta. Se un sito consente solo lettere e cifre, compensa i simboli mancanti con la lunghezza: 20 caratteri tra quei 62 danno circa 119 bit.
Perché la robustezza reale può essere inferiore alla stima?
Con «Includi almeno un carattere di ogni set selezionato» attivo, le password a cui manca un set non vengono generate, e quando la password ha più caratteri dei set selezionati, i caratteri restanti non sono tutti ugualmente probabili. L’entropia reale è quindi inferiore a quella che suggerisce lunghezza × log2(numero di caratteri possibili). La differenza è evidente per le password corte ma piccola per quelle lunghe: 4 caratteri dai quattro set predefiniti mostrano circa 25,6 bit, mentre il valore esatto è circa 21,8 bit; con i 16 caratteri predefiniti lo scarto è inferiore a mezzo bit. Con questa opzione disattivata, ogni carattere viene estratto in modo indipendente tra tutti i caratteri possibili, e la stima corrisponde al modo in cui vengono generate le password.
Un sito web rifiuta alcuni simboli. Che cosa devo fare?
Cancella dalla casella «Set di simboli» i simboli che il sito non accetta, oppure digita solo quelli consentiti; l’elenco viene rigenerato mentre scrivi. Gli spazi vengono ignorati e un carattere inserito due volte conta una sola volta. Se il sito richiede un simbolo, lascia attiva l’opzione «Includi almeno un carattere di ogni set selezionato». Se non accetta simboli, deseleziona la casella «Simboli» e aumenta la lunghezza per compensare il set di caratteri più ridotto.
Meglio usare UUID v4 o v7?
Usa v4 quando l’ordine non conta o quando dall’ID non deve essere possibile leggere l’ora di creazione. Un UUID v7 inizia con un timestamp Unix a 48 bit in millisecondi e, a parte i bit di versione e variante, i restanti 74 bit sono casuali, anche se alcuni generatori ne usano una parte per un contatore o per un’indicazione temporale più precisa. Di conseguenza, gli UUID v7 si ordinano approssimativamente per ora di creazione e, usati come chiavi di database, spesso mantengono vicine tra loro le nuove voci in un indice. Su questa pagina, il primo UUID v7 di ogni millisecondo riceve 73 bit casuali, con il bit più alto dei 74 lasciato a 0. Quando vengono creati più UUID v7 nello stesso millisecondo, o l’orologio del dispositivo torna indietro, il valore precedente viene aumentato di una quantità casuale invece di essere estratto di nuovo, così gli UUID risultano comunque in ordine.
Due UUID generati possono essere uguali?
In teoria sì, ma in pratica la probabilità è trascurabile, purché il generatore di numeri casuali del browser funzioni come previsto. Un UUID v4 ha 122 bit casuali, quindi bisognerebbe generarne circa 2,7 × 10^18 per avere il 50% di probabilità che due siano uguali. Ogni UUID v7 creato su questa pagina è maggiore del precedente, quindi non si ripetono finché la pagina resta aperta, e un UUID v7 creato altrove potrebbe coincidere con uno di essi solo se avesse lo stesso millisecondo e gli stessi bit casuali.
Perché l’analizzatore mostra un timestamp per alcuni UUID e non per altri?
Legge un’ora solo dalle versioni 1, 6 e 7 della variante RFC 9562, che la memorizzano in una posizione definita: le versioni 1 e 6 contano intervalli di 100 nanosecondi dal 15 ottobre 1582, e la versione 7 conta i millisecondi dal 1970-01-01 UTC. L’ora viene mostrata in UTC al millisecondo. Proviene dall’orologio del dispositivo che ha creato l’UUID, e alcuni generatori la spostano o la arrotondano, quindi considerala un’ora di creazione approssimativa. La versione 2 sostituisce parte del timestamp con altri dati, la versione 8 ha una struttura definita da chi l’ha creata, e le versioni 3, 4 e 5 non contengono alcuna ora.