Che file è questo?
Il documento senza estensione di WhatsApp, l'allegato che si chiama ATT00001, la foto che «non si apre»: qui si legge il contenuto e non il nome, e si scopre che cos'è davvero, l'estensione giusta e con che cosa si apre. E se è un programma travestito da PDF, lo dice in rosso.
Il nome di un file è un'etichetta, non una prova
L'estensione, quel .jpg o .pdf in fondo al nome, è solo un pezzo del nome: chiunque la può cambiare, e tanti programmi la perdono per strada. WhatsApp salva certi documenti senza estensione, Outlook manda allegati che si chiamano ATT00001, un'app di trasferimento rinomina in .jpg le foto dell'iPhone lasciandole HEIC, un gestionale esporta un CSV e lo chiama .xls. Il sistema allora sceglie il programma sbagliato, oppure nessuno, e il file «non si apre».
Il contenuto invece non mente, perché quasi ogni formato comincia con una firma: pochi byte sempre uguali, messi lì apposta da chi l'ha inventato. Un PDF comincia con le lettere %PDF, un'immagine PNG con otto byte fissi, un archivio ZIP con le lettere PK, le iniziali di Phil Katz, che lo inventò nel 1989. Questa pagina legge quei byte e ti dice che cos'è il file, qual è l'estensione giusta e, se c'è, quale strumento del sito lo apre.
Rinominare non converte. Se la foto è un HEIC, chiamarla .jpg non la trasforma in un JPEG: cambia solo l'etichetta, ed è proprio così che nascono tanti file che non si aprono. Quando l'estensione è sbagliata la pagina ti offre una copia col nome giusto, con gli stessi identici byte; quando invece ti serve un altro formato, ti serve un convertitore, come Converti HEIC in JPG.
Come legge un file da quattro giga senza caricarlo
Non lo carica da nessuna parte, e non lo legge nemmeno tutto. Guarda le prime e le ultime decine di kilobyte, che per quasi tutti i formati bastano, e poi va a prendere solo i pezzi che servono: di un file da quattro gigabyte legge di solito meno di duecento kilobyte, e ogni scheda dice quanti byte ha letto davvero. Per questo la risposta arriva subito anche per un film intero, e anche sul telefono.
Molti formati sono scatole dentro altre scatole, e lì la firma in testa non basta. Un documento Word, un foglio Excel, una presentazione, un ebook, un'app Android e un programma Java sono tutti archivi ZIP: si distinguono dai nomi delle parti che contengono, e l'OpenDocument e l'EPUB da un piccolo file chiamato mimetype che deve stare per primo. I vecchi .doc, .xls e .ppt, le email .msg di Outlook, gli installatori .msi e i file Office protetti da password sono invece archivi OLE, lo stesso contenitore per tutti, e li distingue il nome dei flussi interni.
Video e foto moderni seguono un'altra regola. MP4, MOV, HEIC, AVIF e M4A hanno la stessa struttura a scatole, e il tipo vero lo dice il marchio scritto nella prima: per questo un video dell'iPhone chiamato .mp4 viene riconosciuto come MOV. Di un file firmato, un p7m, la pagina ti dice anche che cosa c'è dentro la busta, per esempio una fattura elettronica o un PDF.
Il programma travestito
È il motivo più serio per usare questa pagina. Un programma di Windows comincia con le lettere MZ, qualunque sia il suo nome: se un allegato si chiama fattura.pdf ma dentro c'è un programma, qui lo vedi in rosso. L'icona sul desktop non aiuta, perché un programma può mostrare l'icona che vuole, anche quella di un PDF.
Tre trucchi del nome vengono segnalati da soli. La doppia estensione, come documento.pdf.exe: Windows di serie nasconde le estensioni che conosce, e sullo schermo resta documento.pdf. Il nome da programma dato a un testo: un fattura.pdf.js o un fattura.pdf.vbs dentro hanno solo lettere, ma col doppio clic Windows li esegue, ed è la forma più comune degli allegati truffa. E il carattere invisibile che ribalta il verso del testo, il codice U+202E: un file che si chiama fattura, U+202E, fdp.exe sullo schermo si legge fatturaexe.pdf. Nella scheda quel carattere viene mostrato per quello che è, invece di lasciarlo lavorare.
Se ti capita: non aprirlo, cancellalo, e se sembra arrivare da qualcuno che conosci chiediglielo per telefono, non rispondendo allo stesso messaggio. La pagina segnala anche i documenti con le macro e i file che contengono una chiave privata: non sono programmi travestiti, ma meritano la stessa prudenza.
Il testo non ha una firma, e la pagina lo dice
Un file di testo è fatto solo di lettere, e le lettere non hanno una firma. CSV, JSON, XML, sottotitoli e pagine web sono tutti testo, e si riconoscono solo dalla forma del contenuto. Accanto a ogni risultato trovi scritto da dove viene: la firma in testa, la struttura interna oppure solo degli indizi, e nel terzo caso il risultato è molto probabile, ma non sicuro.
Del testo la pagina ti dice però la cosa che serve più spesso: la codifica. UTF-8, UTF-8 con BOM, UTF-16, oppure una vecchia codifica di Windows a 8 bit, che è il motivo per cui le lettere accentate diventano simboli strani quando un file passa da un programma all'altro. Se il testo è già rovinato, con la classica «Ã¨» al posto della «è», si sistema con Ripara i caratteri sbagliati.
Ci sono anche gli a capo, che Windows scrive in un modo e Linux e Mac in un altro, e per un CSV il separatore: il punto e virgola dell'Excel italiano o la virgola di quello inglese. Un CSV esportato da un gestionale col nome .xls viene riconosciuto per quello che è, e col nome giusto sparisce l'avviso di Excel che dice che formato ed estensione non corrispondono.
Quanti formati riconosce, e come si prova
Riconosce 131 formati fra immagini, documenti, archivi, audio, video, programmi, database, certificati, calendari e caratteri. Di questi, 117 sono provati con file veri, scritti da programmi di altri e non da questa pagina: le immagini da Pillow, audio e video da ffmpeg, i documenti dalle librerie che li scrivono, i vecchi file Office direttamente da Word, Excel, PowerPoint e Outlook (la raccolta di prova di Apache POI), i programmi dai compilatori. Solo quattro intestazioni sono scritte a mano, perché nessun programma libero le scrive: il PSD, il winmail.dat, il collegamento .lnk e il .torrent.
Ogni risposta viene poi confrontata con quella del comando file, il riconoscitore che Linux e macOS usano da decenni, e dove quello non sa rispondere con openssl, olefile e ffmpeg. Gli altri si riconoscono dalla firma documentata, e la scheda lo scrive invece di presentarli come sicuri. Se un file non somiglia a niente, la pagina non inventa: dice che non lo riconosce e ti mostra i primi byte.
Quello che non fa
Non apre e non converte il file. Ti dice che cos'è e con che cosa aprirlo: per un archivio c'è Apri un file ZIP, per una foto Converti immagine, per un video Che video è davvero.
Non è un antivirus. Una firma giusta dice di che tipo è un file, non se è innocuo: un PDF o un documento Word possono contenere codice cattivo anche col nome giusto. Il controllo del programma travestito prende il trucco più comune, non tutti.
Non verifica le firme digitali e non indovina le password: di un file firmato dice che è firmato e che cosa contiene, ma che la firma sia valida lo può dire solo chi controlla il certificato. E per sapere se un file scaricato è identico all'originale, confrontane l'impronta con Impronta di un file (MD5, SHA-256).