Overview
In questo tutorial, imparerai come codificare e decodificare base64 dalla riga di comando su Linux. Imparerete anche cos’è la codifica base64 e perché non dovrebbe mai essere usata per proteggere i dati da accessi non autorizzati.
La codifica e decodifica di dati base64 ha molti casi d’uso. Uno è quello di garantire l’integrità dei dati quando si trasferiscono i dati in rete, mentre un altro è l’archiviazione di Secrets in Kubernetes.
Dopo aver letto questo tutorial capirete come codificare facilmente i file o le stringhe, e poi decodificarli di nuovo.
Come codificare base64 su Ubuntu, Debian, OSX e Red Hat
Se stai usando distribuzioni linux popolari, come Ubuntu, Debian, CentOS o Red Hat, lo strumento a riga di comando base64 è tipicamente preinstallato. Non dovresti dover eseguire alcun passo aggiuntivo.
OSX viene anche fornito con la propria versione di base64.
Perché Base64 codifica i dati
Trasferire un file ASCII sulla rete può causare corruzione se non viene decodificato correttamente. La ragione è che i file ASCII sono stringhe convertite in byte, e quando quei byte sono decodificati erroneamente di nuovo in ASCII i tuoi dati diventano corrotti.
Base64 è stato introdotto come un modo per convertire i tuoi dati ASCII in byte arbitrari, dove potrebbero poi essere trasferiti come byte, e decodificati correttamente di nuovo in ASCII.
In breve, la codifica base64 assicura l’integrità dei nostri dati quando vengono trasferiti sulla rete.
Base64 non è crittografia
La codifica dei file non è crittografia e non dovrebbe mai essere usata per proteggere dati sensibili su disco. Piuttosto è un modo utile per trasferire o memorizzare grandi dati sotto forma di stringa.
Mentre può offuscare i dati effettivi da chi dovrebbe navigare, chiunque abbia accesso ai dati codificati con base64 può facilmente decodificarli.
Codifica Base64 di una stringa
Per codificare una stringa in base64 puoi inserire un comando echo nello strumento a riga di comando base64. Per assicurarti che non vengano aggiunti caratteri extra, nascosti, usa il flag -n
.
Senza il flag -n
potresti catturare caratteri nascosti, come ritorni di linea o spazi, che corromperanno la tua codifica base64.
echo -n 'my-string' | base64
Che produrrà il seguente risultato
bXktc3RyaW5n
Codifica base64 di un file
Per codificare base64 un file
base64 /path/to/file
Questo produrrà una stringa codificata base64 molto lunga. Potresti invece voler scrivere lo stdout su file.
bas64 /path/to/file > output.txt
Decodificare le stringhe
Per decodificare con base64 devi usare il flag --decode
. Con le stringhe codificate, puoi fare il pipe di un comando echo in base64 come hai fatto per codificarle.
Utilizzando la codifica di esempio mostrata sopra, decodifichiamola di nuovo nella sua forma originale.
echo -n 'bXktc3RyaW5n' | base64 --decode
A patto che la tua codifica non sia stata corrotta l’output dovrebbe essere la tua stringa originale.
Decodifica dei file
Per decodificare un file con contenuti che sono codificati con base64, devi semplicemente fornire il percorso del file con il flag --decode
.
base64 --decode /path/to/file
Come per la codifica dei file, l’output sarà una stringa molto lunga del file originale. Potresti voler mandare in output stdout direttamente su un file.
base64 --decode /path/to/file > output.txt
Conclusione
In questo tutorial, hai imparato come codificare in base64 file e stringhe. Questo è qualcosa che si fa comunemente per trasferire i file in modo tale che rimanga
.