Tekst na hex

Odczyt zrzutu pamięci, sprawdzenie, co protokół naprawdę wysłał w sieć, rozbieranie zadania z CTF: prędzej czy później potrzebujesz bajtów kryjących się za ciągiem znaków. Wklej tekst, a ten konwerter zwróci go bajt po bajcie szesnastkowo, albo rozdzielony spacjami jak w zrzucie hex (48 65 6c 6c 6f), albo jednym ciągiem (48656c6c6f). Przełącz tryb i droga odwraca się: wklejony hex znów staje się czytelnym tekstem.

Jak działa konwerter

  1. 1

    Wybierz kierunek

    Tekst na hex koduje to, co wpisujesz. Hex na tekst zamienia go z powrotem w znaki.

  2. 2

    Wybierz separator

    Przy kodowaniu pojedyncza spacja między bajtami albo nic. To są dwie dostępne opcje.

  3. 3

    Wklej dane wejściowe

    Tekst czytany jest jako UTF-8. Hex może przyjść z przedrostkami 0x lub \x, z przecinkami, spacjami albo końcami wiersza: zostaną usunięte za Ciebie.

  4. 4

    Przekonwertuj i skopiuj

    Wynik pojawia się poniżej wraz z przyciskiem kopiowania. Nic nie jest pobierane.

Dlaczego hex, a nie system dziesiętny

Jedna cyfra szesnastkowa obejmuje dokładnie 4 bity, więc dwie cyfry obejmują dokładnie jeden bajt, zawsze. System dziesiętny zmusza do liczenia, żeby wiedzieć, czy wartość jeszcze się mieści (czy 128 jest w zakresie? a 256?), podczas gdy szesnastkowy po prostu to pokazuje: 00 to najmniejszy bajt, ff największy, a każdy bajt pomiędzy ma szerokość dwóch znaków. To wyrównanie sprawia, że hex jest zapisem zrzutów pamięci, przechwyconych pakietów, sygnatur plików i kodów kolorów.

Co ten konwerter naprawdę zwraca

  • Zawsze małymi literami. Koder pisze 6c, nigdy 6C. Zapis szesnastkowy nie rozróżnia wielkości liter, więc nic nie ginie, ale jeśli docelowy format wymaga wersalików, przepuść wynik przez konwerter wielkości liter.
  • Zawsze dwie cyfry na bajt. Tabulator to 09, a nie 9, żeby granice bajtów dawały się liczyć.
  • Spacja albo nic. To jedyne dwa separatory. Przy kodowaniu nie ma przedrostka 0x ani \x, więc dopisz je w edytorze, jeśli potrzebujesz ciągów ucieczkowych z C lub Pythona.
  • Wszędzie UTF-8. Tekst mierzony jest w bajtach, nie w znakach.

Hex a Unicode

H zajmuje w UTF-8 jeden bajt, więc staje się 48. Wszystko spoza czystego ASCII zajmuje więcej:

Znak Hex w UTF-8 Bajty
A 41 1
é c3 a9 2
€ e2 82 ac 3
🚀 f0 9f 9a 80 4

Dlatego Hello koduje się jako 48 65 6c 6c 6f, pięć znaków i pięć bajtów, a café jako 63 61 66 c3 a9: cztery znaki, ale pięć bajtów, bo é potrzebuje dwóch. Tak samo działają polskie znaki diakrytyczne, ł to c5 82, a ż to c5 bc. Jeśli krótki ciąg daje więcej par szesnastkowych, niż się spodziewałeś, zwykle to jest przyczyna.

Co przyjmuje dekoder

Wklej dowolny z tych zapisów, a otrzymasz z powrotem Hello:

  • 48 65 6c 6c 6f, w stylu zrzutu hex
  • 48656c6c6f, surowo i bez separatorów
  • 0x48656c6c6f, w stylu literału całkowitego
  • \x48\x65\x6c\x6c\x6f, sekwencje ucieczkowe z C i Pythona
  • 48,65,6C,6C,6F, rozdzielone przecinkami i w dowolnym połączeniu wielkich i małych liter

Przedrostki, przecinki, spacje, tabulatory i znaki końca wiersza są usuwane przed dekodowaniem. Reszta nie: myślnik w 48-65, # przed kodem koloru albo litera dalsza niż f przerywają dekodowanie, tak samo jak nieparzysta liczba cyfr, bo pół bajtu nie zamieni się w znak. W takich przypadkach narzędzie nie zwraca nic, zamiast zgadywać częściowy wynik. Jeśli pole wyniku pozostaje puste, właśnie tam trzeba szukać przyczyny.

Kolory szesnastkowe to ten sam zapis, ale nie ta sama treść

#ff8800 korzysta z tego samego systemu o podstawie 16, ale te trzy bajty opisują kanały czerwony, zielony i niebieski, a nie znaki. Usuń # i odkoduj to tutaj, a dostaniesz trzy surowe bajty, które nie tworzą czytelnego tekstu. Do tego lepiej użyć próbnika kolorów.

Najczęściej zadawane pytania

Tak. Szesnastkowy i base16 to dwie nazwy tego samego systemu: szesnaście cyfr (od 0 do 9 oraz od a do f), z których każda niesie 4 bity.

Z tego narzędzia nie. Koder zawsze pisze małymi literami. Ponieważ zapis szesnastkowy nie rozróżnia wielkości liter, 4f i 4F to ten sam bajt, więc przepuść wynik przez dowolny konwerter wielkości liter, jeśli Twój format tego wymaga. Dekoder bez problemu czyta obie postacie.

Dekoder przyjmuje wyłącznie cyfry od 0 do 9 i od a do f, w parzystej liczbie, po usunięciu przedrostków 0x i \x, przecinków oraz odstępów. Myślnik, #, litera dalsza niż f albo jedna brakująca cyfra unieważniają dane wejściowe, a narzędzie woli pusty wynik od błędnego. Policz cyfry i poszukaj zabłąkanej interpunkcji.

Większość emoji leży w planach dodatkowych Unicode, które UTF-8 zapisuje na czterech bajtach. Czyste znaki ASCII zostają przy jednym bajcie, dlatego tekst angielski daje jedną parę na znak, a polski z ogonkami już nie.

Nie. To pole tekstowe, obsługuje więc to, co da się wpisać lub wkleić. Do danych binarnych base64 jest zwięźlejszy i łatwiejszy w przesyłaniu.

Tak. Konwersja działa na naszym serwerze, więc to, co wklejasz, jedzie razem z żądaniem, a wynik wraca. Zapisujemy wyłącznie samą operację i wybrane opcje, nigdy treść, a tekst nie jest przechowywany po odesłaniu odpowiedzi. Do naprawdę poufnych danych użyj konwertera działającego offline na Twoim własnym komputerze.

Powiązane narzędzia

Narzędzie jest dostępne w innych językach