Base64 Encode and Decode From Command Line

La codifica è il processo usato per convertire i dati in un formato richiesto per una trasmissione o memorizzazione efficace. Al contrario, la decodifica è opposta al metodo di codifica che converte i dati codificati nel loro formato originale. Base64 è il processo di codifica in cui i dati binari sono convertiti in ASCII. La codifica Base64 è principalmente richiesta per evitare i problemi di trasmissione che si verificano quando i dati binari sono trasmessi a sistemi basati sul testo che non possono gestire correttamente i dati binari. Come risultato, l’informazione è persa o corrotta durante la trasmissione.

Alcuni degli usi della codifica sono:

  • compressione dei dati
  • Data hiding
  • Trasmissione dei dati in un altro formato

Per codificare i dati, Base64 usa solo alfabeto, numero e simbolo =. Per esempio, c2FtcGxlCg== è un dato codificato valido mentre b?HV3.Zh2J== non è un dato codificato valido.

In questo articolo, spiegheremo come usare il comando base64 per codificare e decodificare i dati in una stringa o un file.

Abbiamo eseguito i comandi sul sistema Ubuntu 20.04 Focal Fossa. Tuttavia, è possibile eseguire gli stessi comandi anche su altre distribuzioni Linux. Per l’esecuzione dei comandi, abbiamo usato l’applicazione Terminal da linea di comando, a cui si può accedere usando la scorciatoia da tastiera Ctrl+Alt+T.

Sintassi Base64

Qui c’è la sintassi per codificare usando Base64:

base64

Opzioni

Alcune delle opzioni della linea di comando che possono essere usate con il comando base64 sono:

-d o –decode

Utilizza questa opzione per decodificare un file o una stringa.

–help

Utilizza questa opzione per visualizzare un aiuto sull’uso di base64.

-i, –ignore-garbage

Usa questa opzione durante la decodifica per ignorare i caratteri non alfabetici

–versione

Usa questa opzione per visualizzare le informazioni sulla versione

Codifica stringa

Puoi facilmente codificare una stringa usando il comando base64. Per esempio, per codificare un testo campione “Welcome to Linux” in base64, il comando sarebbe:

$ echo “Welcome to Linux” | base64

Questo comando codificherà il testo nella stringa usando base64 e stamperà il testo codificato su standard output come mostrato nella seguente schermata

Puoi anche salvare l’output codificato su un file piuttosto che stampare su standard output usando l’operatore di reindirizzamento (>). Il seguente comando codificherà il testo e salverà l’output in un file chiamato “encodedfile.txt:

$ echo “Welcome to Linux” | base64 > encodedfile.txt

Per visualizzare il file codificato, puoi usare il comando cat:

$ cat encodedfile.txt

Decodifica Stringa

Puoi anche decodificare il testo codificato base64 usando l’opzione -decode o -d. Per esempio per decodificare il testo codificato in base64 “V2VsY29tZSB0byBMaW51eAo=”, il comando sarebbe:

$ echo “V2VsY29tZSB0byBMaW51eAo=” | base64 –decode

Questo comando decodifica il testo codificato in base64 e stampa il testo originale sullo standard output come mostrato nel seguente screenshot.

Puoi anche salvare l’output decodificato in un file piuttosto che stampare su standard output usando l’operatore di reindirizzamento (>). Il seguente comando decodificherà il testo codificato e salverà il testo originale in un file chiamato “decodedfile.txt:

$ echo “V2VsY29tZSB0byBMaW51eAo=” | base64 -decode > decodedfile.txt

Codifica file di testo

Il comando base64 può anche essere usato per codificare un file di testo. Per esempio, per codificare un file di testo chiamato “testfile.txt”, il comando sarebbe:

$ base64 testfile.txt

Questo comando codifica il file di testo specificato e stampa la sua forma codificata sullo standard output come mostrato nella seguente schermata.

Puoi anche salvare l’output codificato in un file piuttosto che stampare su standard output usando l’operatore di reindirizzamento (>). Il seguente comando convertirà il testo nel file usando base64 e salverà l’output in un altro file chiamato “encodedfile.txt:

Per visualizzare il file codificato, puoi usare il comando cat:

$ cat encodedfile.txt

Decodifica file di testo

Per decodificare un file di testo codificato, usa l’opzione -decode o -d. Per esempio per decodificare il file di testo codificato base64 “encodedfile.txt”, il comando sarebbe:

$ base64 -d encodedfile.txt

Questo comando decodifica il file di testo codificato base64 e stampa il testo originale sullo standard output come mostrato nel seguente screenshot.

Puoi anche salvare l’output decodificato in un file piuttosto che stampare su standard output usando l’operatore di reindirizzamento (>). Il seguente comando decodificherà il testo codificato e salverà il testo originale in un file chiamato “decodedfile.txt che può essere successivamente visualizzato usando il comando cat.

$ base64 -d encodedfile.txt > decodedfile.txt

Codifica input utente

Utilizzando la codifica base64, possiamo codificare qualsiasi dato fornito dall’utente. Per questo scopo, avremo bisogno di creare uno script che prenda l’input dell’utente, lo codifichi usando la codifica base64 e stampi i dati codificati sullo standard output.

Crea uno script “test.sh” con il seguente codice:

#!/bin/bash
# Stampa il messaggio per chiedere l’input
echo “Provide Some data to encode”
# Salva l’input in una variabile chiamata “data”
read data
# Codifica usando la codifica base64 e salva l’output in una variabile “encod_data”
encod_data=`echo -n $data | base64`
# Stampa l’output codificato
echo “Encoded text is : $encod_data”

Esegui lo script come segue:

$ ./test.sh

Dopo aver eseguito lo script, ti verrà chiesto di inserire i dati che vuoi codificare. Digita alcuni dati e premi Invio, e riceverai l’output codificato sullo schermo.

Validazione della chiave utente

Ora vediamo un esempio di decodifica base64. Useremo la decodifica base64 per controllare la validità dell’utente. Per farlo, creeremo uno script che chiederà all’utente una chiave. Poi confronterà la chiave inserita con la chiave predefinita, che sarà prima decodificata dalla decodifica base64. Se la chiave inserita dall’utente corrisponde alla chiave predefinita, verrà stampato il messaggio “You have entered a valid key”, altrimenti, si vedrà “The key you have entered is not valid “stampato sullo schermo.

Creare uno script “test1.sh” con il seguente codice:

#!/bin/bash
# Stampa il messaggio di richiesta di input
echo “Enter your key”
# Salva la chiave fornita dall’utente in una variabile chiamata “key”
read key
# Decodifica la chiave codificata (QWJjMTIzCg) e salva l’output in una variabile chiamata “orig_key”
orig_key=`echo ‘QWJjMTIzCg==’ | base64 –decode`
# Confronta la chiave inserita dall’utente con la chiave decodificata
if ; allora
#se la chiave corrisponde, stampa questo:
echo “Hai inserito una chiave valida”
else
#se la chiave non corrisponde, stampa questo:
echo “La chiave che hai inserito non è valida”
fi

Lancia lo script come segue:

$ ./test1.sh

Dopo aver eseguito lo script, ti verrà chiesta la chiave. Digita la chiave e premi Invio. Se la chiave inserita corrisponde alla chiave decodificata predefinita, riceverai il messaggio “Hai inserito una chiave valida”, altrimenti “La chiave inserita non è valida” verrà stampato sullo schermo.

Ecco come puoi usare base64 per codificare e decodificare una stringa o un file dalla riga di comando. I risultati possono essere stampati sullo standard output o salvati in un file. Tuttavia, ricordate che la codifica non è simile alla crittografia, e si possono facilmente rivelare i dati codificati, quindi non è raccomandato l’uso della codifica per la trasmissione di dati sensibili.

.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.