Base32 Kodlayıcı ve Çözücü

Base32 ikili veriyi 32 karakterle temsil eder: 2-7 arasındaki on rakam ve 26 büyük harf; okuma hatalarını önlemek için 0/O veya 1/I içermez. Bu da bir insanın yazması veya yüksek sesle okuması gereken her şey için idealdir: iki faktörlü TOTP secret’ları, kupon kodları, büyük/küçük harf duyarsız tanımlayıcılar. Bu araç binary veya metni Base32’ye kodlar ve geri çözer; isteğe bağlı padding ile RFC 4648’i izler.

Base32 nasıl kodlanır veya çözülür

  1. 1

    Metin yapıştırın veya dosya yükleyin

    Girdi byte olarak ele alınır. Metin girdisi için varsayılan yorumlama UTF-8'dir.

  2. 2

    Yönü seçin

    Ham byte'ları Base32 stringine çevirmek için encode; byte'ları geri almak için decode seçin.

  3. 3

    Padding'i yapılandırın

    RFC 4648, uzunluğu 8'in katına tamamlayan `=` padding belirtir. TOTP secret'ları ve kompakt token'lar için kapatın.

  4. 4

    Sonucu kopyalayın

    Kodlanmış çıktı ayarınıza göre büyük harfli, padding'li veya padding'siz olur.

RFC 4648 alfabesi

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

0 yok, 1 yok, 8 yok, 9 yok. Her karakter 5 bit kodlar (2^5 = 32); bu yüzden 5 girdi byte’ı 8 çıktı karakteri olur.

Çözümlü örnek

ASCII stringi foo kodlanırken (byte’lar 0x66 0x6F 0x6F = 01100110 01101111 01101111):

  1. 5-bit gruplara bölünür: 01100 11001 10111 10110 1111 (son grup padding alır)
  2. Alfabeye eşlenir: M Z X W 6
  3. 8 karaktere ulaşmak için === padding eklenir: MZXW6===

Padding ve uzunluk kuralları

Girdi byte’ı Çıktı uzunluğu Padding
1 8 ======
2 8 ====
3 8 ===
4 8 =
5 8 (yok)

RFC 4648 dışındaki varyantlar

  • Base32 Hex0-9A-V alfabesi; DNSSEC içinde NSEC3 tarafından kullanılır.
  • Crockford’s Base32 — İnsan yazımı için optimize edilmiş alfabe; çözme sırasında O0, I/L1 yerine koyar. ULID’ler ve bazı lisans anahtarları tarafından kullanılır.

Bu araç varsayılan olarak standart RFC 4648 kullanır.

TOTP secret’ları

Google Authenticator ve her modern 2FA uygulamasının kullandığı otpauth:// URI formatı, paylaşılan secret’ı padding olmadan Base32 olarak kodlar. “My Service” için QR taradığınızda secret= parametresi bir Base32 stringidir. HMAC’in kullandığı ham byte’ları incelemek için bu araçla çözün.

Sık Sorulan Sorular

Base32 büyük/küçük harfe duyarsızdır ve benzer görünen karakterlerden kaçınır; insanın okuyacağı veya yazacağı her şeyde bu önemlidir. Base64 daha yoğundur (aynı byte’lar için daha az karakter), ama I ile l ve 0 ile O ayrımını gerektirir; bu da el yazısında ve küçük puntoda bozulur.

RFC 4648 evet der, ama gerçek dünyadaki çoğu tüketici (TOTP uygulamaları, ULID kütüphaneleri, DNSSEC resolver’ları) padding’siz girdiyi kabul eder. Bu araç seçmenize izin verir; iki biçimi de yapıştırdığınızda çözme çalışmalıdır.

Standart Base32’de 0, 1, 8 veya 9 yoktur ve her zaman büyük harflidir. Girdinizde bunlar varsa RFC 4648 değil Crockford varyantı veya base32hex olabilir. Girdiyi temizleyin veya doğru varyantı seçin.

Hayır. Kodlama ve çözme tarayıcıda gerçekleşir. Ne girdi ne de sonuç makinenizden ayrılır.

İlgili Araçlar