{"id":1429,"date":"2026-06-16T23:11:05","date_gmt":"2026-06-16T21:11:05","guid":{"rendered":"https:\/\/marcovaccaro.it\/?page_id=1429"},"modified":"2026-08-26T23:06:22","modified_gmt":"2026-08-26T21:06:22","slug":"cose-la-conversione-base64-guida-tecnica-e-pratica","status":"publish","type":"page","link":"https:\/\/marcovaccaro.it\/old\/blog\/modalita-sviluppatore\/cose-la-conversione-base64-guida-tecnica-e-pratica\/","title":{"rendered":"Cos&#8217;\u00e8 la conversione Base64: guida tecnica e pratica"},"content":{"rendered":"\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-7387b849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column has-pale-cyan-blue-background-color has-background is-layout-flow wp-container-core-column-is-layout-cefe4b43 wp-block-column-is-layout-flow\" style=\"padding-top:var(--wp--preset--spacing--50);padding-right:var(--wp--preset--spacing--60);padding-bottom:var(--wp--preset--spacing--50);padding-left:var(--wp--preset--spacing--60)\">\n<h2 class=\"wp-block-heading\">Diario di bordo: 16 Giugno 2026<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Oggi mi sono posto di fronte ad un enigma apparentemente complesso ma con una soluzione abbastanza banale. Il dubbio \u00e8 di quelli che fanno girare a vuoto i sistemi meno ottimizzati: come \u00e8 possibile trasmettere dati grezzi, come i bit di un\u2019immagine jpg o di un eseguibile, usando una semplice stringa di testo senza mandare in crash l\u2019infrastruttura che li trasporta?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il problema logico \u00e8 evidente se provi a fare un esperimento stupido: prendi una foto, forza la sua apertura con un editor di testo minimale come il Blocco Note e guarda lo schermo. Ti troverai davanti a un ammasso informe di geroglifici, pixel tradotti male e stringhe corrotte. Quello \u00e8 il binario puro. Ora, prova a prendere quel caos e a incollarlo dentro un campo di testo su una pagina web, in una mail o dentro un file JSON. Il sistema si pianta. Questo succede perch\u00e9 i canali di comunicazione standard interpretano alcuni byte specifici come comandi di controllo (ad esempio l\u2019interruzione di riga, il ritorno a capo o la fine del file). Basta che un singolo pixel della tua immagine coincida casualmente con il codice di \u201cfine messaggio\u201d e l\u2019intera trasmissione si tronca, lasciandoti in mano un file corrotto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluzione non \u00e8 criptare, ma trovare un travestimento protettivo: convertire la giungla dei bit in un set di caratteri cos\u00ec standard e innocui che nessun server sulla terra potr\u00e0 mai scambiarli per un comando di sistema.<\/p>\n<\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Cos&#8217;\u00e8 la conversione Base64: guida tecnica e pratica<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Molte persone vedono una stringa di caratteri apparentemente casuali e pensano subito alla crittografia. In realt\u00e0, il <strong>Base64<\/strong> non serve a nascondere informazioni, ma a farle viaggiare in modo sicuro attraverso canali che non sono nati per gestire dati complessi.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"572\" src=\"https:\/\/marcovaccaro.it\/wp-content\/uploads\/2026\/04\/codifica-base-64-1024x572.jpg\" alt=\"\" class=\"wp-image-1430\" style=\"width:1200px;height:auto\" srcset=\"https:\/\/marcovaccaro.it\/old\/wp-content\/uploads\/2026\/04\/codifica-base-64-1024x572.jpg 1024w, https:\/\/marcovaccaro.it\/old\/wp-content\/uploads\/2026\/04\/codifica-base-64-300x167.jpg 300w, https:\/\/marcovaccaro.it\/old\/wp-content\/uploads\/2026\/04\/codifica-base-64-768x429.jpg 768w, https:\/\/marcovaccaro.it\/old\/wp-content\/uploads\/2026\/04\/codifica-base-64-1536x857.jpg 1536w, https:\/\/marcovaccaro.it\/old\/wp-content\/uploads\/2026\/04\/codifica-base-64-2048x1143.jpg 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c8 un sistema di codifica che trasforma dati binari in testo ASCII.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:20px\">A cosa serve realmente il Base64?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">I canali di comunicazione pi\u00f9 datati, come il protocollo SMTP per le email, sono stati progettati per gestire esclusivamente testo semplice. Se provassimo a inviare un&#8217;immagine o un file eseguibile (composti da sequenze di byte &#8220;grezzi&#8221;) attraverso questi sistemi, alcuni byte potrebbero essere interpretati erroneamente come comandi di controllo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ad esempio, un byte specifico potrebbe essere scambiato per il comando di &#8220;fine messaggio&#8221;, troncando il file. Il Base64 risolve il problema <strong>&#8220;travestendo&#8221; i bit<\/strong>: prende i dati binari e li mappa su un set di 64 caratteri &#8220;sicuri&#8221; (lettere, numeri e pochi simboli) che ogni sistema informatico \u00e8 in grado di leggere e trasmettere senza ambiguit\u00e0.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:20px\">Il funzionamento tecnico: la regola dei 6 bit<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Mentre un computer lavora normalmente con gruppi di <strong>8 bit<\/strong> (un byte), il Base64 suddivide i dati in gruppi di <strong>6 bit<\/strong>. Poich\u00e9 2^6 = 64, abbiamo bisogno di esattamente 64 caratteri diversi per rappresentare ogni possibile combinazione.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;alfabeto standard del Base64 comprende:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A-Z<\/strong> e <strong>a-z<\/strong> (52 caratteri)<\/li>\n\n\n\n<li><strong>0-9<\/strong> (10 caratteri)<\/li>\n\n\n\n<li><strong>+<\/strong> e <strong>\/<\/strong> (2 caratteri)<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:15px\">Esempio pratico: l&#8217;encoding (&#8220;Man&#8221;)<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Vediamo come la parola &#8220;Man&#8221; viene trasformata passo dopo passo:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Conversione in ASCII:<\/strong> M (77), a (97), n (110).<\/li>\n\n\n\n<li><strong>Rappresentazione binaria (8 bit):<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>01001101<\/code> (M) | <code>01100001<\/code> (a) | <code>01101110<\/code> (n)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Raggruppamento e divisione (6 bit):<\/strong> Uniamo i 24 bit totali e li dividiamo in quattro blocchi da 6:\n<ul class=\"wp-block-list\">\n<li><code>010011<\/code> | <code>010110<\/code> | <code>000101<\/code> | <code>101110<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Mappatura Base64:<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>010011<\/code> (19) \u2192 <strong>T<\/strong>, <code>010110<\/code> (22) \u2192 <strong>W<\/strong>, <code>000101<\/code> (5) \u2192 <strong>F<\/strong>, <code>101110<\/code> (46) \u2192 <strong>u<\/strong><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Risultato: <strong><code>TWFu<\/code><\/strong>.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:15px\">Esempio pratico: la decodifica<\/h4>\n\n\n\n<p class=\"wp-block-paragraph\">Per tornare indietro dalla stringa <strong><code>TWFu<\/code><\/strong>:<\/p>\n\n\n\n<ol start=\"1\" class=\"wp-block-list\">\n<li><strong>Mappatura inversa:<\/strong> Recuperiamo i valori dai 64 caratteri:\n<ul class=\"wp-block-list\">\n<li><strong>T<\/strong> (19), <strong>W<\/strong> (22), <strong>F<\/strong> (5), <strong>u<\/strong> (46).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Conversione in bit:<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>010011<\/code> | <code>010110<\/code> | <code>000101<\/code> | <code>101110<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Ricostruzione byte (8 bit):<\/strong>\n<ul class=\"wp-block-list\">\n<li><code>01001101<\/code> (77) | <code>01100001<\/code> (97) | <code>01101110<\/code> (110)<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Caratteri originali:<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>M<\/strong>, <strong>a<\/strong>, <strong>n<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:20px\">Il compromesso: perch\u00e9 il file diventa pi\u00f9 pesante?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Per usare solo i caratteri &#8220;sicuri&#8221; della tastiera, siamo costretti a usare pi\u00f9 spazio. Ecco un confronto tra i vari metodi di trasporto:<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><td><strong>Metodo<\/strong><\/td><td><strong>Descrizione<\/strong><\/td><td><strong>Impatto sulla dimensione<\/strong><\/td><\/tr><\/thead><tbody><tr><td><strong>Binario puro<\/strong><\/td><td>Ogni bit diventa un carattere (0 o 1)<\/td><td><strong>+800%<\/strong><\/td><\/tr><tr><td><strong>Esadecimale<\/strong><\/td><td>Ogni byte viene descritto da 2 caratteri<\/td><td><strong>+100%<\/strong><\/td><\/tr><tr><td><strong>Base64<\/strong><\/td><td>Il miglior compromesso tra sicurezza e peso<\/td><td><strong>+33%<\/strong><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:20px\">Il padding e il simbolo &#8220;=&#8221;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cosa succede se i dati non sono un multiplo esatto di 3 byte? In questi casi, il sistema aggiunge dei bit di riempimento (zero). Per segnalare questa operazione, vengono aggiunti uno o due simboli <strong><code>=<\/code><\/strong> alla fine della stringa. Questo processo \u00e8 chiamato <strong>padding<\/strong>.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" style=\"font-size:20px\">Quando conviene usare il Base64<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:15px\">Vantaggi<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Universalit\u00e0:<\/strong> Permette di inserire immagini direttamente nel codice HTML o CSS (Data URI).<\/li>\n\n\n\n<li><strong>Integrit\u00e0:<\/strong> Fondamentale per trasmettere dati binari in formati testuali come JSON o XML.<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" style=\"font-size:15px\">Svantaggi<\/h4>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Efficienza:<\/strong> Aumento del peso del 33% (non adatto a file enormi).<\/li>\n\n\n\n<li><strong>Falsa sicurezza:<\/strong> Non protegge i dati. Chiunque pu\u00f2 decodificarli istantaneamente.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>In sintesi:<\/strong> Il Base64 \u00e8 il &#8220;passaporto&#8221; universale per i bit che devono viaggiare in un mondo fatto di solo testo.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Devi gestire dati in formato Base64? Ho trovato questo sito, perfetto per te! Un pratico strumento online per codificare o decodificare i tuoi dati: <a href=\"https:\/\/www.base64decode.org\/\">https:\/\/www.base64decode.org\/<\/a><\/p>\n<\/blockquote>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\">16 Giugno 2026 &#8211; <a href=\"https:\/\/marcovaccaro.it\/old\/blog\/modalita-sviluppatore\/\">Modalita Sviluppatore<\/a> &#8211; Marco Vaccaro<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Diario di bordo: 16 Giugno 2026 Oggi mi sono posto di fronte ad un enigma apparentemente complesso ma con una soluzione abbastanza banale. Il dubbio \u00e8 di quelli che fanno girare a vuoto i sistemi meno ottimizzati: come \u00e8 possibile trasmettere dati grezzi, come i bit di un\u2019immagine jpg o di un eseguibile, usando una [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1430,"parent":2689,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-1429","page","type-page","status-publish","has-post-thumbnail","hentry"],"_links":{"self":[{"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/pages\/1429","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/comments?post=1429"}],"version-history":[{"count":13,"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/pages\/1429\/revisions"}],"predecessor-version":[{"id":2609,"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/pages\/1429\/revisions\/2609"}],"up":[{"embeddable":true,"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/pages\/2689"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/media\/1430"}],"wp:attachment":[{"href":"https:\/\/marcovaccaro.it\/old\/wp-json\/wp\/v2\/media?parent=1429"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}