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ç, RFC 4648’e uyarak metni standart = padding ile Base32’ye kodlar ve geri çözer.

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

  1. 1

    Dönüştürülecek metni yapıştırın

    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 davranışını göz önünde bulundurun

    RFC 4648, kodlanmış çıktıyı 8'in katı olana kadar `=` ile doldurur. Çözücü hem padding'li hem padding'siz girdiyi kabul eder.

  4. 4

    Sonucu kopyalayın

    Kodlanmış çıktı büyük harflidir ve 8'in katı olacak şekilde `=` ile doldurulur.

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 Hex, 0-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ç yalnızca standart RFC 4648’i uygular; yukarıdaki varyantlar için özel bir dönüştürücü kullanın.

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 kodlama için padding’i şart koşar. Bu araç kodlanmış çıktıyı her zaman 8’in katı olacak şekilde = ile doldurur. Gerçek dünyadaki çoğu tüketici (TOTP uygulamaları, ULID kütüphaneleri, DNSSEC resolver’ları) padding’siz girdiyi kabul eder; buradaki çözücü de padding’li ve padding’siz her iki biçimi de kabul eder.

Standart Base32’de 0, 1, 8 veya 9 yoktur ve her zaman büyük harflidir. Çözücü, RFC 4648 alfabesinin dışındaki her karakteri sessizce yok sayar; bu yüzden küçük harfli veya alışılmadık karakterli girdi yanlış baytlara çözülür. Çözmeden önce girdiyi büyük harflere A-Z ve rakamlara 2-7 dönüştürün.

Evet. Sonucun hesaplanabilmesi için metin sayfanın sunucusuna gönderilir; çok adımlı görünümde aynı metin adım bağlantısında da taşınır. Depolanmaz veya günlüğe kaydedilmez.

İlgili Araçlar

Araç diğer dillerde mevcuttur