0Pricing
Ethical Hacking Academy · Lekcja

Kodowanie a szyfrowanie

Base64, zapis szesnastkowy i szyfry

Kodowanie a szyfrowanie to bezpłatna lekcja Ethical Hacking Academy na CoddyKit. To lekcja 1 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Ethical Hacking Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.

Dwa różne cele

Kodowanie i szyfrowanie wyglądają podobnie, ponieważ oba przekształcają dane w coś, co na pierwszy rzut oka jest nieczytelne, ale ich cele są zupełnie różne.

  • Kodowanie zmienia format danych, aby można je było bezpiecznie przechowywać lub przesyłać.
  • Szyfrowanie chroni poufność danych, tak aby mogła je odczytać tylko osoba mająca klucz.

Mylenie tych pojęć jest jednym z najczęstszych błędów początkujących w dziedzinie bezpieczeństwa.

Kodowanie można odwrócić bez tajnego klucza

Kodowanie wykorzystuje publiczny, powszechnie znany schemat. Nie ma w nim żadnej tajemnicy. Każdy, kto zna ten schemat, może natychmiast zdekodować dane.

Do popularnych kodowań należą Base64, hex, URL encoding i ASCII. Służą one do tego, aby dane binarne mogły przetrwać kanały obsługujące wyłącznie tekst, takie jak poczta e-mail lub nagłówki HTTP.

Base64 w praktyce

Base64 reprezentuje dane binarne za pomocą 64 drukowalnych znaków (A-Z, a-z, 0-9, + i /). Zwiększa rozmiar danych o około 33 procent. Końcowy znak = pełni funkcję dopełnienia.

Można zdekodować dane na dowolnym komputerze z systemem Linux, bez użycia klucza:

echo 'aGVsbG8gd29ybGQ=' | base64 -d
# Output: hello world

Rozpoznawanie Base64

Jako haker będzie Pan spotykać Base64 wszędzie: w tokenach JWT, plikach cookie, plikach konfiguracyjnych i wykradzionych danych. Oto oznaki, że dany ciąg jest zapisany w Base64:

  • Zawiera wyłącznie A-Za-z0-9+/ oraz ewentualne dopełnienie =.
  • Jego długość jest wielokrotnością 4.
  • Po zdekodowaniu otrzymujemy czytelny tekst lub rozpoznawalne nagłówki plików.

Przed założeniem, że podejrzany ciąg jest zaszyfrowany, zawsze należy najpierw spróbować go zdekodować.

Kodowanie szesnastkowe

Kodowanie szesnastkowe reprezentuje każdy bajt za pomocą dwóch znaków (0-9, a-f). Jest szeroko stosowane w przechwyconym ruchu sieciowym, zrzutach pamięci i wynikach funkcji skrótu.

Wartości bajtów 0x68 0x69 tworzą tekst ASCII „hi”.

echo -n 'hi' | xxd -p
# Output: 6869

echo '6869' | xxd -r -p
# Output: hi

Co dodaje szyfrowanie: klucz

Szyfrowanie wykorzystuje szyfr oraz tajny klucz. Bez klucza odwrócenie wyniku (szyfrogramu) jest obliczeniowo niewykonalne.

  • Tekst jawny = pierwotne, czytelne dane.
  • Szyfrogram = zaszyfrowany wynik.
  • Klucz = sekret sterujący szyfrowaniem i deszyfrowaniem.

Zmiana klucza całkowicie zmienia szyfrogram.

Szyfry klasyczne: szyfr Cezara

Szyfr Cezara przesuwa każdą literę o stałą wartość. Przy przesunięciu o 3 litera A staje się literą D. Jest to wyłącznie przykład dydaktyczny, ponieważ istnieje tylko 25 możliwych kluczy, więc szyfr można trywialnie złamać metodą brute force.

ROT13 to szyfr Cezara z przesunięciem o 13. Technicznie jest szyfrem, ale nie zapewnia żadnego rzeczywistego bezpieczeństwa.

echo 'hello' | tr 'a-z' 'd-za-c'
# Output: khoor  (shift of 3)

Nowoczesne szyfry

Rzeczywiste szyfrowanie wykorzystuje algorytmy takie jak AES (symetryczny) i RSA (asymetryczny). Opierają się one na długich kluczach i trudnych problemach matematycznych, a nie na utrzymywaniu algorytmu w tajemnicy.

Zasada Kerckhoffsa: system kryptograficzny powinien być bezpieczny nawet wtedy, gdy wszystko poza kluczem jest publicznie znane. Bezpieczeństwo wynika z klucza, a nigdy z ukrywania algorytmu.

Szyfrowanie wygląda losowo

Można zaobserwować istotną różnicę: dobry szyfrogram wygląda jak losowy szum o dużej entropii. Zakodowane dane tak nie wyglądają.

  • Zakodowany w Base64 tekst „hello” zawsze ma postać aGVsbG8=.
  • Wynik szyfrowania tekstu „hello” algorytmem AES zmienia się wraz z kluczem i wektorem inicjalizacyjnym, dlatego za każdym razem jest inny.

Jeśli zdekodowanie ciągu daje czytelny tekst bez użycia klucza, dane były zakodowane, a nie zaszyfrowane.

Dlaczego ma to znaczenie dla hakerów

Podczas testów bezpieczeństwa stale znajduje się dane, których znaczenie jest ukryte. Pytanie „czy to kodowanie, czy szyfrowanie?” wskazuje kolejny krok:

  • Zakodowane? Należy od razu je zdekodować — klucz nie jest potrzebny. Dane uwierzytelniające ukryte w Base64 to łatwy sukces.
  • Zaszyfrowane? Należy znaleźć klucz, zaatakować zarządzanie kluczami albo poszukać błędów implementacji.

Traktowanie kodowania tak, jakby zapewniało bezpieczeństwo, jest luką, którą będzie Pan stale zgłaszać.

Zaciemnianie to coś trzeciego

Należy pamiętać o trzeciej kategorii: zaciemnianiu. Polega ono na celowym utrudnianiu odczytu danych (zminimalizowany JavaScript, spakowane pliki binarne, XOR ze stałym bajtem) bez użycia rzeczywistego szyfru ani zarządzania kluczami.

Podobnie jak kodowanie, zaciemnianie nie zapewnia prawdziwej poufności. Jedynie spowalnia przypadkowego obserwatora. Doświadczeni analitycy rutynowo je odwracają.

Szybki test

Sprawdź swoje rozumienie kluczowej różnicy.

Podsumowanie

Poznał Pan kluczową różnicę między kodowaniem a szyfrowaniem:

  • Kodowanie (Base64, hex) można odwrócić bez tajnego klucza i zmienia ono tylko format.
  • Szyfrowanie (AES, RSA) wymaga tajnego klucza i chroni poufność.
  • Zaciemnianie ukrywa dane, ale ich nie zabezpiecza.
  • Zawsze należy najpierw dekodować podejrzane ciągi; szyfrogram wygląda jak losowy szum, a zakodowane dane można bez klucza przekształcić w czytelną treść.

Następnie zagłębi się Pan w temat funkcji skrótu — jednokierunkowego przekształcenia, które różni się od obu tych mechanizmów.

Często zadawane pytania

Czy lekcja „Kodowanie a szyfrowanie” jest bezpłatna?

Tak — pełny tekst „Kodowanie a szyfrowanie” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Ethical Hacking Academy, przejdź na CoddyKit PRO. Kurs Ethical Hacking Academy zawiera 4 lekcji w sumie.

Co nauczysz się w „Kodowanie a szyfrowanie”?

Base64, zapis szesnastkowy i szyfry Ćwiczysz Ethical Hacking Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć Ethical Hacking Academy?

Nie wymagamy żadnego doświadczenia. Ethical Hacking Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 1 z 4.

Ile czasu zajmuje lekcja „Kodowanie a szyfrowanie”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji Ethical Hacking Academy?

Tak. Każda lekcja Ethical Hacking Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Kodowanie a szyfrowanie
  2. Haszowanie
  3. Szyfrowanie symetryczne i asymetryczne
  4. Łamanie hashy
← Powrót do Ethical Hacking Academy