Vai al contenuto
Crittografia simmetrica

Cifra e decifra testo e file con AES-256-GCM

Cifratura simmetrica AES-256 in modalità GCM (autenticata) con chiave derivata dalla tua password tramite PBKDF2-HMAC-SHA-256 a 210.000 iterazioni, salt e IV generati in modo casuale a ogni operazione. Funziona su testo (output Base64) e su file di qualsiasi tipo. Tutto avviene tramite la Web Crypto API del browser: il contenuto e la password non lasciano mai il dispositivo e non vengono inviati ad alcun server.

Come cifrare e decifrare con AES

  1. 1

    Scegli testo o file e l'operazione

    Seleziona se lavorare su testo o su file e se vuoi cifrare o decifrare. Per testo digiti o incolli direttamente; per file trascini l'elemento nell'area di rilascio.

  2. 2

    Inserisci la password

    La password è l'unica chiave. Usane una robusta e diversa da quelle che usi altrove. Non c'è recupero: se la dimentichi, il dato cifrato resta illeggibile per sempre.

  3. 3

    Esegui

    In cifratura ottieni una stringa Base64 (testo) o un file .aes (file). In decifratura, fornendo lo stesso contenuto cifrato e la stessa password, riottieni l'originale. Se la password è sbagliata o il dato è stato alterato, GCM rifiuta la decifratura e te lo segnala.

  4. 4

    Conserva o condividi

    Copia l'output Base64 o scarica il file. Per condividerlo in sicurezza, trasmetti il contenuto cifrato e la password su canali separati (es. il file via email, la password a voce).

Come funziona la cifratura, nel dettaglio

Lo schema è quello consigliato per la cifratura simmetrica autenticata. La password non viene usata direttamente come chiave: passa per PBKDF2-HMAC-SHA-256 con 210.000 iterazioni e un salt casuale di 16 byte, generando una chiave AES a 256 bit. Il salt casuale fa sì che la stessa password produca chiavi diverse a ogni cifratura, vanificando le rainbow table. Le iterazioni alte rendono costoso il brute force.

La cifratura usa AES-256 in modalità GCM (Galois/Counter Mode), che è autenticata: oltre a cifrare, calcola un tag di integrità. In decifratura, se anche un solo bit del contenuto o del tag è stato modificato, l'operazione fallisce invece di restituire dati corrotti. Ogni cifratura usa un IV (nonce) casuale di 12 byte, il valore raccomandato per GCM, per non riusare mai la stessa combinazione chiave/IV.

Il formato dell'output è una semplice concatenazione: salt (16 byte) + IV (12 byte) + testo cifrato e tag. Per il testo il tutto viene codificato in Base64; per i file resta binario in un file .aes. In decifratura il tool rilegge salt e IV dalla testa del dato, rideriva la chiave dalla password e decifra. Tutto gira sulla Web Crypto API nativa del browser: nessuna libreria di crittografia di terze parti, nessun dato trasmesso.

Glossario

Termini tecnici usati in questa pagina, spiegati in due righe.

AES-256 #
Advanced Encryption Standard con chiave a 256 bit, lo standard simmetrico più diffuso. Cifratura e decifratura usano la stessa chiave.
GCM (modalità autenticata) #
Galois/Counter Mode: cifra e contemporaneamente produce un tag di autenticazione. Garantisce riservatezza e integrità: un dato manomesso non si decifra, fallisce.
PBKDF2 #
Password-Based Key Derivation Function 2. Trasforma una password in una chiave crittografica applicando ripetutamente HMAC-SHA-256 (qui 210.000 volte) con un salt, per rallentare gli attacchi a forza bruta.
Salt #
Valore casuale unito alla password prima della derivazione della chiave. Casuale a ogni cifratura, impedisce che password identiche generino chiavi identiche e neutralizza le rainbow table.
IV / Nonce #
Initialization Vector: valore casuale (12 byte per GCM) che rende ogni cifratura diversa dalle altre anche con la stessa chiave e lo stesso testo. Non deve mai ripetersi con la stessa chiave.
Base64 #
Codifica che rappresenta dati binari come testo ASCII. Qui serve a trasportare il risultato cifrato (binario) come stringa copiabile e incollabile.

Domande frequenti su cifratura AES

I miei dati o la password vengono inviati a un server?
No. Tutta l'operazione avviene nel browser tramite la Web Crypto API. Il testo, il file e la password non lasciano il dispositivo e non vengono salvati né trasmessi. Puoi disconnetterti da internet dopo aver caricato la pagina e il tool funziona ugualmente.
Cosa succede se dimentico la password?
Il dato è irrecuperabile. Non esiste backdoor né recupero: è il senso della cifratura forte. La chiave deriva esclusivamente dalla password tramite PBKDF2; senza la password corretta, AES-GCM non può decifrare e fallisce. Conserva la password in un password manager.
Posso decifrare altrove un file cifrato qui?
Sì, se rispetti il formato. Il file è la concatenazione salt(16) + IV(12) + ciphertext-con-tag GCM, con chiave AES-256 derivata da PBKDF2-HMAC-SHA-256, 210.000 iterazioni. Con questi parametri puoi decifrare con qualsiasi libreria (Python cryptography, OpenSSL con script, Node crypto). I parametri sono documentati nella sezione tecnica.
Perché GCM e non CBC?
GCM è una modalità autenticata: rileva la manomissione del dato cifrato. CBC cifra ma non autentica, quindi un attaccante può alterare il ciphertext senza che la decifratura se ne accorga (servono costruzioni aggiuntive tipo encrypt-then-MAC). Per un tool generico, GCM è la scelta sicura di default.
Quanto è sicura una password rispetto a una chiave casuale?
Dipende dalla password. Una passphrase lunga e casuale è robusta; una password corta o comune è attaccabile a dizionario, nonostante PBKDF2. Le 210.000 iterazioni rallentano ogni tentativo, ma non sostituiscono una password debole. Per dati molto sensibili usa una passphrase di almeno 4-5 parole casuali.
C'è un limite di dimensione per i file?
Il limite pratico è la memoria del browser: il file viene caricato interamente in memoria per essere cifrato. File fino a qualche centinaio di MB funzionano sui dispositivi moderni; file molto grandi (GB) possono saturare la RAM della scheda. Per archivi enormi conviene uno strumento desktop dedicato.
Il tool usa librerie di crittografia esterne?
No. Usa solo la Web Crypto API nativa del browser (crypto.subtle), implementata dal motore del browser e sottoposta ad auditing. Nessuna libreria JavaScript di crittografia di terze parti, che storicamente sono una fonte di vulnerabilità se non mantenute.
Posso fidarmi del fatto che sia davvero offline?
Puoi verificarlo: apri gli strumenti per sviluppatori del browser, scheda Rete, ed esegui una cifratura. Non vedrai alcuna richiesta in uscita relativa al contenuto. In alternativa, carica la pagina, disattiva la connessione e usa il tool: continua a funzionare perché tutto il calcolo è locale.

Chi sviluppa questi strumenti?

Maurizio Fonte, consulente IT senior con oltre 20 anni di esperienza in PHP, Laravel, infrastrutture Linux, cybersecurity e integrazione AI/LLM in azienda. Backend di produzione, modernizzazione di codice legacy, audit di sicurezza, agenti AI e MCP server custom: il lavoro che sta dietro a questi strumenti.

Conosci Maurizio Fonte