Encodering is het proces dat wordt gebruikt om gegevens om te zetten in een formaat dat nodig is voor effectieve transmissie of opslag. Decoderen daarentegen is het tegenovergestelde van coderen, waarbij de gecodeerde gegevens worden teruggebracht naar het oorspronkelijke formaat. Base64 is het codeerproces waarbij de binaire gegevens worden omgezet in ASCII. Base64-codering is meestal nodig om transmissieproblemen te voorkomen die zich voordoen wanneer binaire gegevens worden verzonden naar tekstgebaseerde systemen die niet goed met binaire gegevens overweg kunnen. Als gevolg daarvan gaat de informatie verloren of raakt deze beschadigd tijdens de transmissie.
Enkele toepassingen van codering zijn:
- Gegevenscompressie
- Gegevens verbergen
- Transmissie van gegevens in een ander formaat
Voor het coderen van gegevens gebruikt Base64 alleen een alfabet, een getal en een =-symbool. Bijvoorbeeld, c2FtcGxlCg== is een geldig gecodeerd gegeven, terwijl b?HV3.Zh2J== geen geldig gecodeerd gegeven is.
In dit artikel zullen we uitleggen hoe u het Base64-commando kunt gebruiken om de gegevens in een tekenreeks of een bestand te coderen en te decoderen.
We hebben de opdrachten uitgevoerd op Ubuntu 20.04 Focal Fossa-systeem. U kunt dezelfde commando’s echter ook op andere Linux distributies uitvoeren. Voor het uitvoeren van de commando’s, hebben we gebruik gemaakt van de opdrachtregel Terminal applicatie, die kan worden benaderd met behulp van de Ctrl + Alt + T sneltoets.
Base64 Syntax
Hier volgt de syntax voor het coderen met Base64:
Opties
Enkele van de command-line opties die met base64 commando kunnen worden gebruikt zijn:
Gebruik deze optie om een bestand of een tekenreeks te decoderen.
Gebruik deze optie om hulp weer te geven over het gebruik van base64.
Gebruik deze optie tijdens het decoderen om niet-alfabetische tekens te negeren
Gebruik deze optie om versie-informatie weer te geven
Encoding String
U kunt eenvoudig een tekenreeks coderen met het base64-commando. Bijvoorbeeld, om een voorbeeldtekst “Welkom bij Linux” te coderen naar base64, zou het commando zijn:
Dit commando codeert de tekst in de string met base64 en drukt de gecodeerde tekst af naar standaarduitvoer, zoals te zien is in de volgende schermafbeelding
U kunt de gecodeerde uitvoer ook opslaan in een bestand in plaats van deze af te drukken naar standaarduitvoer met behulp van de redirection operator (>). Het volgende commando codeert de tekst en slaat de uitvoer op in een bestand met de naam “encodedfile.txt:
Om het gecodeerde bestand te bekijken, kunt u het commando cat gebruiken:
Tekenreeks decoderen
U kunt de base64 gecodeerde tekst ook decoderen met de optie -decode of -d. Om bijvoorbeeld de base64 gecodeerde tekst “V2VsY29tZSB0byBMaW51eAo=” te decoderen, zou het commando zijn:
Dit commando zal de base64 gecodeerde tekst decoderen en de originele tekst op de standaarduitvoer afdrukken zoals in de volgende schermafbeelding wordt getoond.
U kunt de gedecodeerde uitvoer ook opslaan in een bestand in plaats van deze af te drukken naar de standaarduitvoer met behulp van de omleidingsoperator (>). Het volgende commando decodeert de gecodeerde tekst en slaat de originele tekst op in een bestand met de naam “decodedfile.txt:
Encoding Text File
Het base64 commando kan ook worden gebruikt om een tekstbestand te coderen. Om bijvoorbeeld een tekstbestand met de naam “testfile.txt” te coderen, zou het commando zijn:
Dit commando codeert het opgegeven tekstbestand en drukt de gecodeerde vorm af op de standaarduitvoer, zoals te zien is in het volgende screenshot.
U kunt de gecodeerde uitvoer ook opslaan in een bestand in plaats van deze af te drukken naar standaarduitvoer met behulp van de omleidingsoperator (>). Het volgende commando converteert de tekst in het bestand met behulp van base64 en slaat de uitvoer op in een ander bestand met de naam “encodedfile.txt:
Om het gecodeerde bestand te bekijken, kunt u het commando cat gebruiken:
Tekstbestand decoderen
Om een gecodeerd tekstbestand te decoderen, gebruikt u de optie -decode of -d. Om bijvoorbeeld een base64 gecodeerd tekstbestand “encodedfile.txt” te decoderen, zou het commando zijn:
Dit commando zal het base64 gecodeerde tekstbestand decoderen en de originele tekst op de standaarduitvoer afdrukken, zoals in de volgende schermafbeelding te zien is.
U kunt de gedecodeerde uitvoer ook opslaan in een bestand in plaats van deze af te drukken naar standaarduitvoer met behulp van de omleidingsoperator (>). Het volgende commando decodeert de gecodeerde tekst en slaat de originele tekst op in een bestand met de naam “decodedfile.txt dat later kan worden bekeken met het commando cat.
Encoding User Input
Met behulp van de base64-codering kunnen we alle gegevens coderen die door de gebruiker worden aangeleverd. Hiervoor moeten we een script maken dat invoer van de gebruiker aanneemt, deze codeert met base64-codering, en de gecodeerde gegevens afdrukt op standaarduitvoer.
Maak een script “test.sh” met de volgende code:
# Bericht afdrukken om invoer te vragen
echo “Geef enkele gegevens om te coderen”
# De invoer opslaan in een variabele met de naam “data”
read data
# Coderen met base64-codering en de uitvoer opslaan in een variabele “encod_data”
encod_data=`echo -n $data | base64`
# De gecodeerde uitvoer afdrukken
echo “De gecodeerde tekst is : $encod_data”
Uitvoeren van het script als volgt:
Nadat u het script hebt uitgevoerd, wordt u gevraagd de gegevens in te voeren die u wilt coderen. Typ wat gegevens in en druk op Enter, en u krijgt de gecodeerde uitvoer op het scherm.
Validating User key
Nu gaan we een voorbeeld zien van base64 decodering. We zullen de base64 decoding gebruiken om de geldigheid van de gebruiker te controleren. Om dit te doen, zullen we een script maken dat de gebruiker om een sleutel vraagt. Dan zal het de ingevoerde sleutel vergelijken met de voorgedefinieerde sleutel, die eerst zal worden gedecodeerd door base64 decodering. Als de door de gebruiker ingevoerde sleutel overeenkomt met de vooraf gedefinieerde sleutel, wordt het bericht “U hebt een geldige sleutel ingevoerd” afgedrukt, anders ziet u “De sleutel die u hebt ingevoerd is niet geldig “afgedrukt op het scherm.
Maak een script “test1.sh” met de volgende code:
# Bericht afdrukken om invoer te vragen
echo “Voer uw sleutel in”
# Sla de door de gebruiker opgegeven sleutel op in een variabele met de naam “sleutel”
lees sleutel
# Decodeer de gecodeerde sleutel (QWJJMTIzCg) en sla de uitvoer op in een variabele met de naam “orig_key”
orig_key=`echo ‘QWJJMTIzCg==’ | base64 -.-decodeer`
# Vergelijk de door de gebruiker ingevoerde sleutel met de gedecodeerde sleutel
if ; dan
#als de sleutel overeenkomt, drukt u dit af:
echo “U hebt een geldige sleutel ingevoerd”
else
#alsde sleutel niet overeenkomt, druk dan dit af:
echo “De sleutel die u hebt ingevoerd is niet geldig”
fi
Uitvoeren van het script als volgt:
Nadat u het script hebt uitgevoerd, wordt u om de sleutel gevraagd. Typ de sleutel in en druk op Enter. Als de ingevoerde sleutel overeenkomt met de vooraf gedefinieerde gedecodeerde sleutel, krijgt u de melding “U hebt een geldige sleutel ingevoerd”, anders wordt de melding “De ingevoerde sleutel is niet geldig” op het scherm afgedrukt.
Dit is hoe u base64 kunt gebruiken om een tekenreeks of een bestand vanaf de opdrachtregel te coderen en te decoderen. De resultaten kunnen worden afgedrukt op de standaarduitvoer of worden opgeslagen in een bestand. Onthoud echter dat coderen niet vergelijkbaar is met versleutelen, en men kan de gecodeerde gegevens gemakkelijk onthullen, dus het wordt niet aanbevolen om codering te gebruiken voor de overdracht van gevoelige gegevens.