Generatore di Stringhe Casuali — come e perché generare token, password e chiavi sicure
Un generatore di stringhe casuali è uno strumento per creare sequenze di caratteri da un set dato (alfabeto, numeri, caratteri speciali) della lunghezza desiderata. Tali stringhe vengono utilizzate nello sviluppo software, nei test, nella sicurezza informatica e nell'amministrazione di sistemi. Il nostro generatore funziona sulla base dell'algoritmo crittograficamente sicuro crypto.getRandomValues(), integrato in tutti i browser moderni.
Sicurezza crittografica: perché è importante
Non tutti i generatori di numeri casuali sono uguali. Il normale Math.random() in JavaScript è pseudocasuale e prevedibile — non è adatto per generare password, token o chiavi di crittografia. Il metodo crypto.getRandomValues() appartiene alla classe CSPRNG (Cryptographically Secure Pseudo-Random Number Generator) e utilizza la fonte di entropia del sistema operativo. Questo stesso metodo viene utilizzato in TLS/SSL, Web Crypto API, generazione di token JWT e altri sistemi critici. Il nostro generatore utilizza esclusivamente l'API crypto, garantendo la massima resistenza delle stringhe generate.
Generazione di password: lunghezza, entropia, resistenza
Una password sicura ha un'entropia sufficiente — una misura di imprevedibilità. L'entropia si calcola come la lunghezza della stringa moltiplicata per il logaritmo della dimensione dell'alfabeto in base 2. Per una password del set a-z, A-Z, 0-9 (62 caratteri), ogni carattere aggiunge ~5,95 bit di entropia. Una password di 12 caratteri ha ~71 bit, di 16 caratteri — ~95 bit, di 20 caratteri — ~119 bit. Le raccomandazioni NIST (SP 800-63B) prevedono un minimo di 8 caratteri per i servizi online, ma la pratica moderna è 14-20 caratteri con set misto.
Token di autorizzazione e chiavi API
I token (access token, refresh token, chiave API) sono stringhe segrete che confermano i diritti di accesso a una risorsa. Per le chiavi API, la lunghezza standard è 32-64 caratteri alfanumerici, che forniscono 190-380 bit di entropia. Gli identificatori di sessione devono avere almeno 128 bit di entropia secondo le raccomandazioni OWASP. I token CSRF, i valori nonce e i codici di conferma monouso vengono anche generati utilizzando CSPRNG.
UUID v4: identificatore univoco universale
UUID v4 (RFC 4122) è un identificatore a 128 bit dove 122 bit sono casuali e 6 bit sono riservati per versione e variante. Formato: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx, dove y è uno dei caratteri 8, 9, a, b. UUID v4 fornisce 2^122 (~5,3 × 10^36) valori possibili, rendendo la probabilità di collisione trascurabile anche quando si generano miliardi di identificatori. UUID è ampiamente utilizzato come chiave primaria in PostgreSQL, MongoDB, architetture di microservizi e sistemi distribuiti.
HEX e Base64: formati di codifica
HEX (codifica esadecimale) rappresenta ogni byte con due caratteri (0-9, a-f). Utilizzato per hash (SHA-256 = 64 caratteri HEX), indirizzi MAC, colori CSS (#FF5733) e chiavi di crittografia. Base64 codifica tre byte con quattro caratteri dell'alfabeto A-Z, a-z, 0-9, +, / (e = per il riempimento). Applicato per codificare JWT, incorporare immagini in HTML (data URI), trasmettere dati binari in JSON e XML.
Salt e hashing delle password
Il salt è una stringa casuale aggiunta alla password prima dell'hashing per proteggere contro le rainbow table e gli attacchi di forza bruta. Ogni utente deve avere un salt univoco. La lunghezza raccomandata del salt è di almeno 16 byte (32 caratteri HEX o 22 caratteri Base64). Gli algoritmi moderni di hashing (bcrypt, Argon2, scrypt) generano il salt automaticamente, ma per altri scenari — ad esempio, HMAC o crittografia — il salt deve essere generato separatamente.
Dati di test per lo sviluppo
Le stringhe casuali sono indispensabili nei test: compilare campi di moduli, creare dati simulati, test di carico, verifica della validazione e dei limiti di lunghezza. Il generatore permette di creare rapidamente mille stringhe della lunghezza necessaria con qualsiasi set di caratteri — e scaricarle come file di testo per l'importazione in un database di test o script.
Consigli di sicurezza quando si lavora con stringhe segrete
Le password, le chiavi e i token generati devono essere memorizzati in un gestore di password (1Password, Bitwarden, KeePass) o in un vault sicuro di segreti (HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager). Non memorizzare mai i segreti in chiaro nel codice, nelle configurazioni o nel repository (git). Per trasferire i segreti tra i membri del team, utilizzare canali crittografati o link monouso (ad esempio, OneTimeSecret). La rotazione delle chiavi e dei token è una pratica obbligatoria: cambiare le chiavi API e i token di servizio almeno ogni 90 giorni.