Overview
I denne vejledning lærer du, hvordan du base64-kodes og dekoder fra kommandolinjen på Linux. Du vil også lære, hvad base64-kodning er, og hvorfor det aldrig bør bruges til at beskytte data mod uautoriseret adgang.
Base64-kodning og -afkodning af data har mange anvendelsesmuligheder. Et er at sikre dataintegritet ved overførsel af data over netværket, mens et andet er lagring af Secrets i Kubernetes.
Efter at have læst denne vejledning vil du forstå, hvordan du nemt kan kode filer eller strenge og derefter afkode dem tilbage.
Sådan base64-kodes på Ubuntu, Debian, OSX og Red Hat
Hvis du kører populære Linux-distributioner, såsom Ubuntu, Debian, CentOS eller Red Hat, er base64-kommandolinjeværktøjet typisk præinstalleret. Du bør ikke skulle være nødt til at udføre yderligere trin.
OSX leveres også med sin egen version af base64.
Hvorfor Base64-kodning af data
Overførsel af en ASCII-fil over netværket kan forårsage korruption, hvis den ikke er afkodet korrekt. Årsagen er, at ASCII-filer er string-konverteret til bytes, og når disse bytes afkodes forkert tilbage til ASCII, bliver dine data korrupte.
Base64 blev introduceret som en måde at konvertere dine ASCII-data til vilkårlige bytes, hvor de så kunne overføres som bytes og afkodes korrekt tilbage til ASCII.
Kort sagt sikrer base64-kodning integriteten af vores data, når de overføres over netværket.
Base64 er ikke kryptering
Kodning af filer er ikke kryptering og bør aldrig bruges til at sikre følsomme data på disken. Det er snarere en nyttig måde at overføre eller lagre store data i form af en streng.
Selv om det kan sløre de faktiske data fra bør surferne, kan enhver, der har adgang til base64-kodede data, nemt afkode dem.
Base64-kodning af en streng
For at base64-kode en streng kan du pipe en ekko-kommando ind i base64-kommandolinjeværktøjet. For at sikre, at der ikke tilføjes ekstra, skjulte tegn, skal du bruge -n
-flaget.
Men uden -n
-flaget kan du fange skjulte tegn, som f.eks. linjeskift eller mellemrum, hvilket vil ødelægge din base64-kodning.
echo -n 'my-string' | base64
Hvilket vil udgive følgende
bXktc3RyaW5n
Base64-kodning af en fil
For at base64-kodere en fil
base64 /path/to/file
Dette vil udgive en meget lang, base64-kodet streng. Du bør måske skrive stdout til filen i stedet.
bas64 /path/to/file > output.txt
Dekodning af strenge
For at dekode med base64 skal du bruge --decode
-flaget. Med kodet streng kan du pipe en ekko-kommando ind i base64, som du gjorde for at kode den.
Lad os afkode den tilbage til dens oprindelige form ved hjælp af den ovenfor viste eksempelkodning.
echo -n 'bXktc3RyaW5n' | base64 --decode
Såfremt din kodning ikke blev ødelagt, bør output være din oprindelige streng.
Afkodning af filer
For at afkode en fil med indhold, der er base64-kodet, skal du blot angive stien til filen med --decode
-flaget.
base64 --decode /path/to/file
Som ved kodning af filer vil output være en meget lang streng af den oprindelige fil. Du ønsker måske at outputte stdout direkte til en fil.
base64 --decode /path/to/file > output.txt
Slutning
I denne vejledning har du lært, hvordan du base64-kodede filer og strings. Dette noget, der almindeligvis gøres for at overføre filer på en sådan måde, at det forbliver