Koder i dekoder Base32

Base32 reprezentuje dane binarne za pomocą 32 znaków — cyfr 2-7 i 26 wielkich liter, bez 0/O ani 1/I, aby uniknąć pomyłek przy odczycie. Dzięki temu idealnie nadaje się do wszystkiego, co człowiek musi przepisać albo przeczytać na głos: sekretów TOTP do 2FA, kodów voucherów, identyfikatorów niewrażliwych na wielkość liter. To narzędzie koduje dane binarne albo tekst do Base32 i dekoduje je z powrotem, zgodnie z RFC 4648 i opcjonalnym paddingiem.

Jak kodować albo dekodować Base32

  1. 1

    Wklej tekst albo prześlij plik

    Wejście jest traktowane jako bajty. UTF-8 jest domyślną interpretacją dla tekstu.

  2. 2

    Wybierz kierunek

    Koduj, aby zamienić surowe bajty na ciąg Base32; dekoduj, aby odzyskać bajty.

  3. 3

    Skonfiguruj padding

    RFC 4648 określa padding `=` do długości będącej wielokrotnością 8. Wyłącz go dla sekretów TOTP i kompaktowych tokenów.

  4. 4

    Skopiuj wynik

    Zakodowane wyjście jest wielkimi literami, z paddingiem albo bez, zależnie od ustawienia.

Alfabet RFC 4648

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 2 3 4 5 6 7

Brak 0, brak 1, brak 8, brak 9. Każdy znak koduje 5 bitów (2^5 = 32), więc 5 bajtów wejściowych staje się 8 znakami wyjściowymi.

Przykład krok po kroku

Kodowanie ciągu ASCII foo (bajty 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. Podział na grupy 5-bitowe: 01100 11001 10111 10110 1111 (ostatnia grupa dopełniona)
  2. Mapowanie na alfabet: M Z X W 6
  3. Dodanie paddingu ===, aby osiągnąć 8 znaków: MZXW6===

Padding i reguły długości

Bajty wejścia Długość wyjścia Padding
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (brak)

Warianty poza RFC 4648

  • Base32 Hex — alfabet 0-9A-V, używany przez NSEC3 w DNSSEC.
  • Base32 Crockforda — alfabet zoptymalizowany pod wpisywanie przez ludzi; przy dekodowaniu podstawia O0, I/L1. Używany przez ULID-y i niektóre klucze licencyjne.

To narzędzie domyślnie używa standardu RFC 4648.

Sekrety TOTP

Format URI otpauth://, używany przez Google Authenticator i każdą nowoczesną aplikację 2FA, koduje współdzielony sekret w Base32 bez paddingu. Gdy skanujesz QR dla “My Service”, parametr secret= jest ciągiem Base32. Zdekoduj go tym narzędziem, aby obejrzeć surowe bajty używane przez HMAC.

Najczęściej zadawane pytania

Base32 nie rozróżnia wielkości liter i unika podobnych znaków, co ma znaczenie dla wszystkiego, co człowiek czyta albo wpisuje. Base64 jest gęstsze (mniej znaków dla tych samych bajtów), ale wymaga odróżniania I od l i 0 od O, co zawodzi w piśmie odręcznym i drobnym druku.

RFC 4648 mówi, że tak, ale większość rzeczywistych odbiorców (aplikacje TOTP, biblioteki ULID, resolvery DNSSEC) przyjmuje wejście bez paddingu. To narzędzie pozwala wybrać; wklejenie obu form powinno się dekodować.

Standardowy Base32 nie ma 0, 1, 8 ani 9 i zawsze jest wielkimi literami. Jeśli wejście je zawiera, może to być wariant Crockforda albo base32hex, nie RFC 4648. Oczyść wejście albo wybierz właściwy wariant.

Nie. Kodowanie i dekodowanie odbywa się w przeglądarce. Ani wejście, ani wynik nie opuszczają twojej maszyny.

Powiązane narzędzia