Basetop 10 kode og avkode fra kommandolinjen

Basetop 10 kode og avkode fra kommandolinjen
Koding er prosessen som brukes til å konvertere data i et format som kreves for effektiv overføring eller lagring. I kontrast er avkoding motsatt av kodingsmetoden som konverterer de kodede dataene tilbake til det opprinnelige formatet. Base64 er kodingsprosessen der de binære dataene blir konvertert til ASCII. Base64-koding er mest nødvendig for å unngå overføringsproblemer som oppstår når binære data overføres til tekstbaserte systemer som ikke kan håndtere de binære dataene riktig. Som et resultat går informasjonen tapt eller ødelagt under overføring.

Noen av bruken av koding er:

  • Datakomprimering
  • Data skjuler
  • Overføring av data i et annet format

For koding av data bruker Base64 bare alfabet, tall og = symbol. For eksempel, C2ftcgxlcg == er en gyldig kodede data mens b?Hv3.Zh2j == er ikke en gyldig kodet data.

I denne Linux Hint -opplæringen vil vi forklare hvordan du bruker base64 -kommandoen til å kode og avkode dataene i en streng eller en fil. Vi har utført kommandoene på Ubuntu 20.04 Focal Fossa System. Du kan imidlertid også kjøre de samme kommandoene på andre Linux -distribusjoner.

Base64 Syntaks

Her er syntaks for koding ved bruk av BASE64:

base64 [alternativ] [fil]

Alternativer

Noen av kommandolinjealternativene som kan brukes med BASE64-kommandoen er:

-D eller -Decode

Bruk dette alternativet til å avkode en fil eller en streng.

--hjelp

Bruk dette alternativet for å vise hjelp angående bruken av base64.

-Jeg, --ignore-Garbage

Bruk dette alternativet mens du avkoding for å ignorere ikke-alfabet-tegn

--versjon

Bruk dette alternativet til å vise versjonsinformasjon

Kodingsstreng

Du kan enkelt kode en streng ved hjelp av base64 -kommandoen. For eksempel, for å kode en eksempeltekst "Velkommen til Linux" til Base64, ville kommandoen være:

Echo “Velkommen til Linux” | Base64
Terminalutgang:
linuxhint@hp34: ~ $ ekko "Velkommen til Linux" | Base64
V2VSY29TZSB0BYBMAW51EAO =

Denne kommandoen vil kode teksten i strengen ved hjelp av BASE64 og skrive ut den kodede teksten til standardutgang som vist i terminalutgangen ovenfor.

Du kan også lagre den kodede utgangen i en fil i stedet for å skrive ut til standardutgang ved hjelp av omdirigeringsoperatøren (>). Følgende kommando vil kode teksten og lagre utdataene i en fil som heter “Enkodedfile.tekst:

Echo “Velkommen til Linux” | base64> kodetfile.tekst

For å se den kodede filen, kan du bruke CAT -kommandoen:

katt kodetfile.tekst
Terminalutgang:
linuxhint@hp34: ~ $ katt kodetfile.tekst
4OCCV2VSY29TZSB0BYBMAW51EOKANQO =

Avkodende streng

Du kan også avkode base64 -kodet teksten ved hjelp av alternativet -DECODE eller -D. For eksempel for å avkode base64 -kodet tekst “V2VSY29TZSB0BYBMAW51EAO =”, ville kommandoen være:

ECHO 4OCCV2VSY29TZSB0BYBMAW51EOKANQO = | Base64 -Decode

Denne kommandoen vil avkode Base64 -kodet tekst og skrive ut originalteksten på standardutgangen som vist i følgende terminalutgang.

Terminalutgang:
linuxhint@hp34: ~ $ ekko 4occv2vsy29tzsb0bybmaw51eokanqo = | Base64 -Decode
“Velkommen til Linux”

Koding av tekstfil

Base64 -kommandoen kan også brukes til å kode en tekstfil. For dette eksemplet kan vi lage en tekstfil med noe innhold først ved å bruke denne kommandoen på terminalen, eller bruke en hvilken som helst tekstfil.

ekko "" "Jeg elsker Linux
Jeg elsker Linux
Jeg elsker Linux
Linuxhint er min hjemmeside "" "> Testfile.tekst

For å kode denne eller en hvilken som helst tekstfil som heter “Testfile.txt ”, ville kommandoen være:

Base64 Testfile.tekst

Denne kommandoen vil kode den spesifiserte tekstfilen og skrive ut det kodede skjemaet på standardutgangen som vist i følgende terminalutgang:

linuxhint@hp34: ~ $ base64 testfile.tekst
SSBMB3ZLIEXPBNV4CKKGTG92ZSBMAW51EAPJIEXVDMUGTGLUDXGKTGLUDXHIAW50IGLZIG15ighv
bwvwywdlcg ==

Du kan også lagre den kodede utgangen i en fil i stedet for å skrive ut til standardutgang ved hjelp av omdirigeringsoperatøren (>). Følgende kommando konverterer teksten i filen ved å bruke Base64 og lagre utdataene til en annen fil som heter “Enkodedfile.tekst". Kommandoen skriver ikke ut noe på skjermen.

Base64 Testfile.txt> kodetfile.tekst

For å se den kodede filen, kan du bruke CAT -kommandoen:

katt kodetfile.tekst
Terminalutgang:
linuxhint@hp34: ~ $ base64 testfile.txt> kodetfile.tekst
linuxhint@hp34: ~ $ katt kodetfile.tekst
SSBMB3ZLIEXPBNV4CKKGTG92ZSBMAW51EAPJIEXVDMUGTGLUDXGKTGLUDXHIAW50IGLZIG15ighv
bwvwywdlcg ==

Avkodende tekstfil

For å avkode en kodet tekstfil, bruk alternativet -DECODE eller -D. For eksempel for å avkode base64 kodet tekstfil “Kodetfil.txt ”, ville kommandoen være:

base64 -d kodetfile.tekst

Denne kommandoen vil avkode Base64 -kodet tekstfil og skrive ut originalteksten på standardutgangen som vist i følgende terminalutgang:

Terminalutgang:
linuxhint@hp34: ~ $ base64 -d kodedfile.tekst
Jeg elsker Linux
Jeg elsker Linux
Jeg elsker Linux
Linuxhint er hjemmesiden min
linuxhint@hp34: ~ $

Koder for brukerinngang

Ved hjelp av base64-kodingen kan vi kode alle brukere-leverte data. For dette formålet må vi lage et skript som vil ta brukerinngang, kode det ved hjelp av BASE64 -koding og skrive ut de kodede dataene på standardutgang. Lag et skript “Test.SH ”med følgende kode:

#!/bin/bash
# Skriv ut melding for å be om inndata
ekko "Gi noen data å kode"
# Lagre inndata til en variabel med navnet "Data"
Les data
# Kode ved hjelp av base64 koding og lagre utdataene i en variabel “encod_data”
encod_data = 'Echo -n $ data | base64 '
# Utskriftskodet utgang
Echo "kodet tekst er: $ encod_data"

Kjør skriptet som følger:

CHMOD 755 Test.sh; ./test.sh

Etter å ha kjørt skriptet, vil du bli bedt om å legge inn dataene du vil kode. Skriv inn noen data og trykk Enter, så vil du motta den kodede utgangen på skjermen som vist nedenfor:

Terminalutgang:
linuxhint@hp34: ~ $ chmod 755 test.sh; ./test.sh
Gi noen data for å kode
Jeg elsker Linux
Kodet tekst er: SSBSB3ZLIGXPBNV4

Denne kodede teksten kan sendes over internett eller til et annet program og deretter dekodes senere ved hjelp av en enkel kommando. For denne kommandoen antar vi mottaksprogrammet, avkode.SH, har lagt de kodede dataene i en variabel i bash kalt Mottatt_encoding.

#!/bin/bash
Mottatt_encoding = SSBSB3ZLIGXPBNV4
Mottatt_string = 'ekko $ mottatt_encoding | Base64 -Decode '
ekko $ mottatt_string

Her kan du se resultatene fra mottaksprogrammet i terminalutgangen:

linuxhint@hp34: ~ $ chmod 755 dekode.sh; ./dekode.sh
Jeg elsker Linux

Konklusjon

Slik kan du bruke Base64 til å kode og avkode en streng eller en fil fra kommandolinjen. Resultatene kan skrives ut på standardutgangen, lagres i en variabel eller en fil, eller sendes over nettverket til et annet program. Husk imidlertid at koding ikke ligner på kryptering, og man kan lett avsløre de kodede dataene, så det anbefales ikke å bruke koding for overføring av sensitive data med mindre de også er kryptert.