Generatore di Numeri Casuali Veri · Crittografico · Gratuito

💾 Generatore di Byte Casuali

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.

ℹ️ Formati disponibili:
Esadecimale: Formato standard (00-FF per byte)
Binario: 8 bit per byte (00000000-11111111)
Decimale: Valore numerico (0-255 per byte)
Base64: Codifica a 64 caratteri (compatta)
Base64 URL-safe: Sicura per URL e filename

💡 Dimensioni comuni:
16 byte (128 bit): UUID, chiavi AES-128
32 byte (256 bit): Chiavi AES-256, hash SHA-256
64 byte (512 bit): Chiavi HMAC-SHA512
256 byte: Seed per generatori casuali

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.

⚙️ Come funziona

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.

🎯 Quando e come usarlo

🔑 Chiavi di cifratura

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.

🎫 Token e API key

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.

🧂 Salt e nonce

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.

🌱 Seed riproducibili

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.

🔐 Segreti applicativi

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.

🧪 Dati di test binari

Genera payload di byte arbitrari per collaudare parser, buffer e funzioni di serializzazione con input non banali, inclusi valori fuori dal range ASCII stampabile.

Perché non basta un rand() qualsiasi

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.

Quanti byte servono davvero

❓ Domande frequenti

I byte generati sono davvero sicuri per uso crittografico?

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.

Che differenza c'è tra i formati esadecimale, binario e decimale?

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.

Quanti byte mi servono per una chiave AES?

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.

Quanti byte servono per un token di sessione o una API key?

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.

I valori generati vengono salvati da qualche parte?

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.

Che cos'è l'entropia e perché conta la lunghezza?

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.