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:
Opzioni
Alcune delle opzioni della linea di comando che possono essere usate con il comando base64 sono:
Utilizza questa opzione per decodificare un file o una stringa.
Utilizza questa opzione per visualizzare un aiuto sull’uso di base64.
Usa questa opzione durante la decodifica per ignorare i caratteri non alfabetici
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:
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:
Per visualizzare il file codificato, puoi usare il comando cat:
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:
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:
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:
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:
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:
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.
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:
# 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:
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:
# 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:
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.
.