Oversikt
I den här handledningen lär du dig hur man base64-kodar och avkodar från kommandoraden på Linux. Du kommer också att lära dig vad base64-kodning är och varför det aldrig bör användas för att skydda data från obehörig åtkomst.
Base64-kodning och avkodning av data har många användningsområden. Ett är att säkerställa dataintegritet vid överföring av data över nätverket, medan ett annat är att lagra Secrets i Kubernetes.
Efter att ha läst den här handledningen kommer du att förstå hur du enkelt kan koda filer eller strängar och sedan avkoda dem tillbaka.
Hur man base64-kodar på Ubuntu, Debian, OSX och Red Hat
Om du kör populära Linuxdistributioner som Ubuntu, Debian, CentOS eller Red Hat är kommandoradsverktyget base64 vanligtvis förinstallerat. Du bör inte behöva utföra några ytterligare steg.
OSX levereras också med sin egen version av base64.
Varför Base64 kodar data
Överföring av en ASCII-fil över nätverket kan orsaka korruption om den inte avkodas korrekt. Anledningen är att ASCII-filer är strängkonverterade till bytes, och när dessa bytes avkodas felaktigt tillbaka till ASCII blir dina data korrupta.
Base64 introducerades som ett sätt att konvertera dina ASCII-data till godtyckliga bytes, där de sedan kunde överföras som bytes och avkodas korrekt tillbaka till ASCII.
Kort sagt säkerställer base64-kodning integriteten hos våra data när de överförs över nätverket.
Base64 är inte kryptering
Kodning av filer är inte kryptering och bör aldrig användas för att säkra känsliga data på disk. Det är snarare ett användbart sätt att överföra eller lagra stora data i form av en sträng.
Men även om det kan dölja de faktiska uppgifterna för den som ska surfa, kan alla som har tillgång till bas64-kodade data lätt avkoda dem.
Base64-kodning av en sträng
För att base64-koda en sträng kan du skicka in ett eko-kommando i kommandoradsverktyget base64. För att säkerställa att inga extra, dolda tecken läggs till använder du flaggan -n
.
Och utan flaggan -n
kan du fånga upp dolda tecken, som radåterföring eller mellanslag, vilket kommer att förstöra din base64-kodning.
echo -n 'my-string' | base64
Som ger ut följande
bXktc3RyaW5n
Base64-kodning av en fil
För att base64-koda en fil
base64 /path/to/file
Detta ger ut en mycket lång, base64-kodad sträng. Du kanske vill skriva stdout till filen istället.
bas64 /path/to/file > output.txt
Avkodning av strängar
För att avkoda med base64 måste du använda flaggan --decode
. Med kodad sträng kan du pipa ett eko-kommando till base64 på samma sätt som du gjorde för att koda den.
Med hjälp av exempelkodningen som visas ovan, låt oss avkoda den tillbaka till dess ursprungliga form.
echo -n 'bXktc3RyaW5n' | base64 --decode
Förutsatt att din kodning inte skadades bör utgången vara din ursprungliga sträng.
Avkodning av filer
För att avkoda en fil vars innehåll är base64-kodat, anger du helt enkelt sökvägen till filen med flaggan --decode
.
base64 --decode /path/to/file
Som vid kodning av filer blir resultatet en mycket lång sträng av den ursprungliga filen. Du kanske vill ge ut stdout direkt till en fil.
base64 --decode /path/to/file > output.txt
Slutsats
I den här handledningen har du lärt dig hur man base64-kodar filer och strängar. Detta något som vanligtvis görs för att överföra filer på ett sådant sätt att det förblir