Bastop 10 codifica e decodifica dalla riga di comando

Bastop 10 codifica e decodifica dalla riga di comando
La codifica è il processo utilizzato per convertire i dati in un formato richiesto per la trasmissione o l'archiviazione efficaci. Al contrario, la decodifica è opposta al metodo di codifica che converte i dati codificati nel suo formato originale. Base64 è il processo di codifica in cui i dati binari vengono convertiti in ASCII. La codifica di base64 è principalmente richiesta per evitare i problemi di trasmissione che si verificano quando i dati binari vengono trasmessi a sistemi basati sul testo che non possono gestire correttamente i dati binari. Di conseguenza, le informazioni vengono perse o danneggiate durante la trasmissione.

Alcuni degli usi della codifica sono:

  • Compressione dati
  • Dati nascosti
  • Trasmissione di dati in un altro formato

Per i dati di codifica, Base64 utilizza solo alfabeto, numero e = simbolo. Ad esempio, c2ftcgxlcg == è un dati codificato valido mentre B?Hv3.ZH2J == non sono dati codificati validi.

In questo tutorial di Linux suggerimenti, spiegheremo come utilizzare il comando Base64 per codificare e decodificare i dati in una stringa o in un file. Abbiamo eseguito i comandi su Ubuntu 20.04 Sistema fossa focale. Tuttavia, puoi anche eseguire gli stessi comandi su altre distribuzioni Linux.

Sintassi di base64

Ecco la sintassi per la codifica usando Base64:

base64 [opzione] [file]

Opzioni

Alcune delle opzioni della riga di comando che possono essere utilizzate con il comando Base64 sono:

-d o -decodifica

Utilizzare questa opzione per decodificare un file o una stringa.

--aiuto

Usa questa opzione per visualizzare l'aiuto per quanto riguarda l'utilizzo di Base64.

-Io,-Ignoro-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

È possibile codificare facilmente una stringa usando il comando Base64. Ad esempio, per codificare un testo di esempio "Welcome to Linux" a Base64, il comando sarebbe:

Echo "Welcome to Linux" | Base64
Output del terminale:
Linuxhint@hp34: ~ $ echo "welcome to Linux" | Base64
V2VSY29TZSB0BYBMAW51EAO =

Questo comando codificherà il testo nella stringa utilizzando Base64 e stamperà il testo codificato su output standard come mostrato nell'uscita terminale sopra.

È inoltre possibile salvare l'output codificato in un file anziché stampare su output standard utilizzando l'operatore di reindirizzamento (>). Il comando seguente codificherà il testo e salverà l'output in un file chiamato "codifica filedfile.TXT:

Echo "Welcome to Linux" | Base64> codifica.TXT

Per visualizzare il file codificato, è possibile utilizzare il comando CAT:

CAT codificato file.TXT
Output del terminale:
Linuxhint@hp34: ~ $ cat codedfile.TXT
4occv2vsy29tzsb0bybmaw51eokanqo =

String di decodifica

È inoltre possibile decodificare il testo codificato Base64 usando l'opzione -decode o -D. Ad esempio a decodificare il testo codificato Base64 “V2VSY29TZSB0BYBMAW51EAO =”, il comando sarebbe:

echo 4occv2vsy29tzsb0bybmaw51eokanqo = | Base64 -Decodifica

Questo comando decodificherà il testo codificato Base64 e stampa il testo originale sull'uscita standard come mostrato nella seguente uscita terminale.

Output del terminale:
Linuxhint@hp34: ~ $ echo 4occv2vsy29tzsb0bybmaw51eokanqo = | Base64 -Decodifica
"Benvenuti a Linux"

Codifica file di testo

Il comando Base64 può anche essere utilizzato per codificare un file di testo. Per questo esempio, consente di creare un file di testo con alcuni contenuti prima utilizzando questo comando sul terminale o utilizzare qualsiasi file di testo.

echo "" "Adoro Linux
Amo Linux
Amo Linux
Linuxhint è la mia homepage "" "> Testfile.TXT

Per codificare questo o qualsiasi file di testo denominato "Testfile.txt ”, il comando sarebbe:

Base64 Testfile.TXT

Questo comando codificherà il file di testo specificato e stampa il suo modulo codificato sull'output standard come mostrato nella seguente uscita terminale:

Linuxhint@hp34: ~ $ Base64 Testfile.TXT
Ssbmb3zliexpbnv4ckkgtg92zsbmaw51apjiexvdmugtgludxgktgludxhiaw50iglzig1ighv
bwvwywdlcg ==

È inoltre possibile salvare l'output codificato in un file anziché stampare su output standard utilizzando l'operatore di reindirizzamento (>). Il comando seguente convertirà il testo nel file utilizzando Base64 e salverà l'output in un altro file denominato "codifica filedfile.TXT". Il comando non sta stampando nulla sullo schermo.

Base64 Testfile.txt> codificaledfile.TXT

Per visualizzare il file codificato, è possibile utilizzare il comando CAT:

CAT codificato file.TXT
Output del terminale:
Linuxhint@hp34: ~ $ Base64 Testfile.txt> codificaledfile.TXT
Linuxhint@hp34: ~ $ cat codedfile.TXT
Ssbmb3zliexpbnv4ckkgtg92zsbmaw51apjiexvdmugtgludxgktgludxhiaw50iglzig1ighv
bwvwywdlcg ==

Decodifica file di testo

Per decodificare un file di testo codificato, utilizzare l'opzione -decode o -d. Ad esempio per decodificare il file di testo codificato Base64 “codificato.txt ”, il comando sarebbe:

Base64 -D codificato.TXT

Questo comando decodificherà il file di testo codificato Base64 e stampa il testo originale sull'uscita standard come mostrato nella seguente uscita del terminale:

Output del terminale:
Linuxhint@hp34: ~ $ Base64 -D codedfile.TXT
Amo Linux
Amo Linux
Amo Linux
Linuxhint è la mia homepage
Linuxhint@hp34: ~ $

Codificare l'input dell'utente

Utilizzando la codifica Base64, possiamo codificare eventuali dati forniti dall'utente. A tale scopo, dovremo creare uno script che prenderà input dell'utente, codifichiamo utilizzando la codifica di Base64 e stampare i dati codificati sull'output standard. Crea uno script “Test.sh "con il seguente codice:

#!/Bin/Bash
# Stampa Messaggio per chiedere l'input
Echo "Fornisci alcuni dati per codificare"
# Salva l'ingresso in una variabile denominata "dati"
Leggi i dati
# ENCODE usando la codifica Base64 e salva l'output in una variabile "ECCOD_DATA"
encod_data = 'echo -n $ data | base64 '
# Stampa output codificato
Echo "Il testo codificato è: $ ENCOD_DATA"

Esegui lo script come segue:

Test CHMOD 755.sh; ./test.sh

Dopo aver eseguito lo script, ti verrà chiesto di inserire i dati che si desidera codificare. Digitare alcuni dati e premere Invio e riceverai l'output codificato sullo schermo come mostrato di seguito:

Output del terminale:
Linuxhint@hp34: ~ $ chmod 755 Test.sh; ./test.sh
Fornire alcuni dati per codificare
Amo Linux
Il testo codificato è: ssbsb3zligxpbnv4

Questo testo codificato può essere inviato su Internet o in un altro programma e quindi decodificato in seguito utilizzando un semplice comando. Per questo comando assumiamo il programma di ricezione, decodifica.Sh, ha messo i dati codificati in una variabile in bash chiamata REVET_ENCODING.

#!/Bin/Bash
REVET_ENCODING = SSBSB3ZLIGXPBNV4
REVED_STRING = 'echo $ REVET_ENCODING | Base64 -Decodi '
Echo $ REVET_STRING

Qui puoi vedere i risultati del programma di ricezione nell'output del terminale:

Linuxhint@hp34: ~ $ chmod 755 decode.sh ; ./decodificare.sh
Amo Linux

Conclusione

Ecco come è possibile utilizzare Base64 per codificare e decodificare una stringa o un file dalla riga di comando. I risultati possono essere stampati sull'output standard, salvati in una variabile o in un file o passati sulla rete a un altro programma. Tuttavia, ricorda che la codifica non è simile alla crittografia e si può facilmente rivelare i dati codificati, quindi non si consiglia di utilizzare la codifica per la trasmissione di dati sensibili a meno che non sia anche crittografato.