Genera byte casuali crittograficamente sicuri per applicazioni di sicurezza,
chiavi di crittografia, seed per generatori, token univoci e altro. I byte sono generati
usando random_bytes() di PHP che utilizza entropia del sistema operativo.
I byte casuali sono il mattone di ogni operazione di sicurezza: una chiave AES-256 non è altro che 32 byte imprevedibili, un token di sessione sono 16 o 24 byte scelti a caso. Questo generatore produce sequenze di byte con qualità crittografica e le restituisce in esadecimale, binario o decimale, pronte da incollare in un file .env, in uno script o in una variabile d'ambiente. È lo strumento giusto per sviluppatori e sistemisti che devono creare un valore che nessuno possa indovinare né ricalcolare, senza dover ricordare a memoria la sintassi di openssl rand.
Ogni byte è un valore compreso tra 0 e 255, cioè otto bit. Lo strumento genera la quantità di byte richiesta attingendo alla sorgente di casualità crittografica del sistema (CSPRNG), non al comune generatore pseudo-casuale usato per giochi e simulazioni. La differenza è sostanziale: un CSPRNG è progettato perché, anche conoscendo parte dell'output, resti impossibile prevedere il resto della sequenza.
La stessa sequenza binaria viene poi rappresentata nel formato che scegli. In esadecimale ogni byte diventa due cifre (da 00 a ff), la notazione più compatta e diffusa per chiavi e hash. In binario vedi gli otto bit espliciti, comodo per la didattica e il debug a basso livello. In decimale ottieni i valori da 0 a 255, adatti a popolare un array di interi.
La rappresentazione cambia soltanto il modo di scrivere gli stessi dati: 16 byte restano 16 byte, cioè 128 bit di entropia, che tu li legga come 32 caratteri esadecimali o come 128 zeri e uni. Scegli la lunghezza in base all'uso e copia il risultato direttamente dove ti serve.
Genera i 32 byte di una chiave AES-256 o i 16 di una AES-128 da passare a libsodium, OpenSSL o al tuo linguaggio, senza scomodare la riga di comando.
Crea un token di sessione o una chiave API da 24 o 32 byte in esadecimale: 48 o 64 caratteri impossibili da indovinare per forza bruta.
Produci un salt da 16 byte per l'hashing di una password con bcrypt o Argon2, oppure un nonce da 12 byte per una cifratura AES-GCM.
Fissa un seed di alta qualità in un esperimento di machine learning o in una simulazione, così i risultati restano ripetibili a partire da uno stato noto.
Riempi variabili come APP_SECRET o JWT_SECRET nel file .env di un progetto Laravel, Django o Node, invece di digitare una stringa scelta a mano.
Genera payload di byte arbitrari per collaudare parser, buffer e funzioni di serializzazione con input non banali, inclusi valori fuori dal range ASCII stampabile.
Molti linguaggi offrono due famiglie di generatori. La prima, come rand() in C o Math.random() in JavaScript, è pensata per velocità e uniformità statistica: perfetta per mescolare carte o piazzare nemici in un videogioco, ma il suo stato interno può essere ricostruito osservando pochi output. Usarla per una chiave sarebbe un errore grave.
La seconda famiglia è quella crittografica: getrandom() e /dev/urandom su Linux, BCryptGenRandom su Windows. Questi generatori raccolgono entropia dall'hardware, ad esempio i tempi di interruzione, e la espandono con algoritmi pensati per resistere alla predizione. In PHP la funzione corretta è random_bytes(), in Python secrets.token_bytes(), in Node crypto.randomBytes(): questo strumento fa lo stesso lavoro nel browser.
La quantità di byte determina la sicurezza. Con 16 byte hai 2^128 combinazioni possibili, un numero talmente grande che nessuna forza bruta pratica potrà mai esaurirle. Per questo 128 bit sono considerati il minimo per una chiave simmetrica e 256 bit lo standard per i contesti più sensibili; superare i 32 byte, per una singola chiave, raramente aggiunge sicurezza utile.
Sì: lo strumento attinge a una sorgente di casualità crittografica (CSPRNG), non a un generatore pseudo-casuale prevedibile. È il tipo di casualità richiesto per chiavi, token e salt. Per i contesti a rischio più alto, molti preferiscono comunque generare i segreti direttamente sulla macchina di produzione con random_bytes o secrets.token_bytes, così il valore non lascia mai quel server.
Rappresentano gli stessi identici byte in modi diversi. L'esadecimale è il più compatto e usato per chiavi e hash (due cifre per byte), il binario mostra gli otto bit espliciti utili per capire com'è fatto un byte, il decimale dà i valori da 0 a 255 comodi per riempire array di interi. La sicurezza non cambia con il formato: cambia solo come lo leggi.
Dipende dalla variante: 16 byte per AES-128, 24 per AES-192 e 32 per AES-256. Nella maggior parte dei casi si sceglie AES-256, quindi 32 byte. Una chiave AES, in fondo, è semplicemente una sequenza di byte casuali della lunghezza corretta, non una password da ricordare.
In genere 16 byte (128 bit) sono il minimo accettabile, mentre 24 o 32 byte offrono un margine più ampio. In esadecimale diventano rispettivamente 32, 48 o 64 caratteri. Con 128 bit di entropia la probabilità di indovinare il valore o di avere una collisione è, in pratica, trascurabile.
No: lo strumento serve a produrre byte da usare subito e non conserva i valori generati. Per i segreti più critici la pratica migliore resta generarli sul server di destinazione, così il valore non transita mai altrove. Considera i byte prodotti qui come pronti da incollare e poi da custodire in modo sicuro.
L'entropia misura l'imprevedibilità: ogni byte davvero casuale aggiunge 8 bit. Con 16 byte hai 128 bit, cioè 2^128 combinazioni possibili, fuori dalla portata di qualsiasi attacco a forza bruta. Aumentare la lunghezza rende il valore ancora più difficile da indovinare, ma oltre i 32 byte raramente serve per le chiavi simmetriche.