Overiew
W tym poradniku, nauczysz się jak kodować i dekodować base64 z linii poleceń w systemie Linux. Dowiesz się także czym jest kodowanie base64 i dlaczego nigdy nie powinno być używane do ochrony danych przed nieautoryzowanym dostępem.
Kodowanie i dekodowanie danych base64 ma wiele zastosowań. Jednym z nich jest zapewnienie integralności danych podczas przesyłania danych przez sieć, podczas gdy innym jest przechowywanie Secrets w Kubernetes.
Po przeczytaniu tego poradnika zrozumiesz, jak łatwo kodować pliki lub ciągi znaków, a następnie dekodować je z powrotem.
Jak kodować base64 na Ubuntu, Debianie, OSX, i Red Hat
Jeśli używasz popularnych dystrybucji linuxa, takich jak Ubuntu, Debian, CentOS, lub Red Hat, narzędzie wiersza poleceń base64 jest zazwyczaj preinstalowane. Nie powinieneś być zmuszony do wykonywania żadnych dodatkowych kroków.
OSX również posiada własną wersję base64.
Dlaczego Base64 koduje dane
Przesłanie pliku ASCII przez sieć może spowodować uszkodzenie, jeśli nie zostanie poprawnie zdekodowany. Powodem tego jest fakt, że pliki ASCII są konwertowane na bajty, a kiedy te bajty są dekodowane niepoprawnie z powrotem do ASCII, twoje dane stają się uszkodzone.
Base64 został wprowadzony jako sposób na konwersję danych ASCII na dowolne bajty, gdzie mogą być przesyłane jako bajty i dekodowane poprawnie z powrotem do ASCII.
W skrócie, kodowanie base64 zapewnia integralność naszych danych podczas przesyłania przez sieć.
Base64 to nie szyfrowanie
Kodowanie plików nie jest szyfrowaniem i nigdy nie powinno być używane do zabezpieczania wrażliwych danych na dysku. Jest to raczej użyteczny sposób przesyłania lub przechowywania dużych danych w formie łańcucha znaków.
Pomimo, że może to ukryć rzeczywiste dane przed osobami, które powinny je przeglądać, każdy kto ma dostęp do zakodowanych danych base64 może je łatwo zdekodować.
Kodowanie łańcucha znaków base64
Aby zakodować łańcuch znaków base64 możesz wysłać polecenie echo do narzędzia wiersza poleceń base64. Aby zapewnić, że nie zostaną dodane żadne dodatkowe, ukryte znaki, użyj flagi -n
.
Bez flagi -n
możesz przechwycić ukryte znaki, jak zwroty linii lub spacje, które uszkodzą twoje kodowanie base64.
echo -n 'my-string' | base64
Wyświetli to co następuje
bXktc3RyaW5n
Kodowanie pliku base64
Aby zakodować plik base64
base64 /path/to/file
Wyświetli to bardzo długi, zakodowany base64 łańcuch. Możesz chcieć napisać stdout do pliku zamiast tego.
bas64 /path/to/file > output.txt
Dekodowanie łańcuchów
Aby dekodować z base64 musisz użyć flagi --decode
. Mając zakodowany ciąg znaków, możesz wysłać polecenie echo do base64, tak jak to zrobiłeś, aby go zakodować.
Używając przykładowego kodowania pokazanego powyżej, zdekodujmy go z powrotem do jego oryginalnej postaci.
echo -n 'bXktc3RyaW5n' | base64 --decode
Pod warunkiem, że twoje kodowanie nie zostało uszkodzone, wyjście powinno być oryginalnym łańcuchem.
Dekodowanie plików
Aby zdekodować plik z zawartością, która jest zakodowana base64, po prostu podajesz ścieżkę pliku z flagą --decode
.
base64 --decode /path/to/file
Tak jak w przypadku kodowania plików, wyjście będzie bardzo długim łańcuchem oryginalnego pliku. Możesz chcieć wypisać stdout bezpośrednio do pliku.
base64 --decode /path/to/file > output.txt
Zakończenie
W tym tutorialu, nauczyłeś się jak kodować base64 pliki i łańcuchy. To coś, co jest powszechnie stosowane do przesyłania plików w taki sposób, że pozostaje