Una delle codifiche più utilizzate per il web è sicuramente quella chiamata Base64. Difatti, viene utilizzata in uno dei principali strumenti che internet ci mette a disposizione, la posta elettronica: più specificatamente Base64 è usata per convertire le email da binario a ASCII e viceversa.

Il nome deriva dal fatto che utilizza 64 simboli proprio di ASCII, ognuno dei quali ha una corrispondenza binaria ben precisa. Questo algoritmo ovviamente non presenta nessuna caratteristica di sicurezza e quindi sconsigliamo l’utilizzo al fine di criptare le password o qualsiasi altro tipo di dato sensibile.

Come funziona

Il procedimento di conversione di Base64 è molto semplice: l’algoritmo prende ogni singolo simbolo (lettere, numeri e segni) che compongono una email, lo converte in binario e successivamente, a partire da questa conversione, in vari segmenti, ciascuno di essi composto da 6 bit.

Ogni segmento, a sua volta, è convertito in simbolo in base al  proprio valore numerico, secondo uno schema definito: le cifre da 0 a 25 corrispondono alle lettere maiuscole, dal 26 in poi le minuscole, i numeri, il segno dell’addizione quello della barra obliqua, lo slash.

base64

I primi utilizzi

I primi esempi di questo tipo di codifica furono utilizzati per le comunicazioni dial-up analogiche tra sistemi che usavano lo stesso sistema operativo e quindi la stessa tipologia di caratteri. Per esempio, uuencode (utilizzato allora sui sistemi UNIX) usa lettere maiuscole, cifre e molti caratteri di punteggiatura, ma non le lettere minuscole.

Base64 in PHP

PHP ha due funzioni native molto comode per convertire da ASCII a Base64 e viceversa. L’utilizzo è davvero molto semplice: per codificare una stringa ASCII in Base64 basterà:

<?php
  base64_encode ( $data )
?>

mentre per convertire da Base64 in ASCII utilizzeremo:

<?php
  base64_decode ( $data )
?>

Dai un’occhiata ai nostri corsi PHP, JavaScript, Laravel e Vue.js!

Base64 in Java

Con lo sviluppo di Java 8, codificare e decodificare stringhe di testo in Base64 è diventato molto più semplice rispetto al passato, grazie alla libreria java.util.Base64. Ecco un esempio pratico:

import java.io.UnsupportedEncodingException;
import java.util.Base64;
public class EsempioBase64 {
   public static void main(String args[]) {
      String str = "Sto leggendo un articolo su LaraMind";
      Base64.Encoder base64Encoder= Base64.getEncoder();
   }
}

Corso PHP ad Oggetti LaraMind

Tool di conversione

Online esistono numerosi siti che offrono strumenti gratuiti per la conversione di stringhe alfanumeriche in Base64 e viceversa. Alcuni di questi tool offrono addirittura la scelta del charset che intendiamo utilizzare e quale linguaggio di programmazione stiamo utilizzando, per una compatibilità totale con il nostro codice; su altri tool è inoltre possibile caricare dei file testuali da convertire e quindi scaricare il risultato dell’elaborazione sul proprio computer. Possiamo citarne alcuni tra i più utilizzati: