Nasıl kullanılır
- Metni Base32hex'e dönüştürmek için "Kodla", Base32hex'i yeniden metne dönüştürmek için "Kodu çöz" seçeneğini seçin.
- "Base32hex" varyantını seçili bırakın. Biçiminiz gerektiriyorsa "Dolgu" seçeneğini kapatın veya "Küçük harf" seçeneğine geçin.
- Girdinizi yazın veya yapıştırın ya da bir dosya açın. Sonuç siz yazarken güncellenir.
- Sonucu kopyalayın veya dosya olarak indirin.
Base32hex nedir?
Base32hex, RFC 4648'in 7. bölümünde tanımlanan "Base 32 Encoding with Extended Hex Alphabet" (genişletilmiş hex alfabesiyle Base32 kodlaması) yöntemidir. Standart Base32 ile tamamen aynı şekilde çalışır: her karakter 5 bit taşır, her 5 bayt 8 karaktere dönüşür ve çıktı = ile 8'in katına tamamlanır. Yalnızca alfabe farklıdır. Base32hex, A-Z 2-7 yerine onaltılık sistemin bittiği yerden saymaya devam eder: 0-9 rakamları 0 ile 9'u temsil eder, A 10'dur ve V 31'dir.
İki alfabe karakterlerinin çoğunu paylaştığından bir Base32hex dizesi çoğu zaman standart bir Base32 kod çözücüsüne hatasız verilebilir, ancak ortaya çıkan baytlar yanlış olur. Kodu her zaman, kodlamada kullanılan varyantla çözün.
Sıralama düzeni korunur
Alfabe artan ASCII sırasındadır ve her karakterin değeri konumuyla birlikte artar. Bunun sonucunda iki Base32hex dizesini karakter karakter karşılaştırmak, alttaki baytları karşılaştırmakla aynı sıralamayı verir. RFC 4648 bunu standart Base32 ve Base64'te bulunmayan bir özellik olarak vurgular; bu da Base32hex'i veritabanları ve anahtar-değer depoları gibi sıralı depolamadaki anahtarlar için uygun kılar.
Tüm dizeleri aynı harf büyüklüğünde tutun ve girdilerin uzunlukları farklıysa dolguyu kapatın: = işareti sıralamada rakamlarla harfler arasına düşer ve düzeni bozabilir.
DNSSEC NSEC3'te Base32hex
RFC 5155'te tanımlanan NSEC3 kayıtları, bölgedeki her adın listelenmesini zorlaştırırken bir DNS adının var olmadığını kanıtlar. Her ad SHA-1 ile hash'lenir ve 20 baytlık hash, dolgusuz 32 karakterlik bir Base32hex etiketi olarak yazılır; bu etiket genellikle küçük harfle gösterilir. Kodlama hash'lerin sırasını koruduğu için hash'lenmiş adlar sıralı bir zincir oluşturur. Bir hash'i böyle bir etikete dönüştürmek için onu onaltılık girdi olarak yapıştırın, "Dolgu" seçeneğini kapatın ve "Küçük harf" seçeneğini seçin. Bu araç yalnızca kodlama adımını gerçekleştirir; tuzlanmış, yinelemeli NSEC3 hash'ini hesaplamaz.
Kodda Base32hex
# Python 3.10+
import base64
base64.b32hexencode(b'foobar') # b'CPNMUOJ1E8======'
base64.b32hexdecode('CPNMUOJ1E8======') # b'foobar'
// Go (import "encoding/base32")
base32.HexEncoding.EncodeToString(data)
base32.HexEncoding.WithPadding(base32.NoPadding).EncodeToString(data)
Teknik özellikler
| Alfabe | 0-9 A-V |
|---|---|
| Çıktı boyutu | 5 bayt başına 8 karakter (%160) |
| Dolgu | = ile 8 karakterin katına tamamlanır |
| Standart | RFC 4648, bölüm 7 |
| Büyük/küçük harf duyarlı | Hayır |
Örnekler
| Girdi (UTF-8) | Çıktı |
|---|---|
Hello, World! | 91IMOR3F5GG5ERRIDHI22=== |
Base64.is | 89GN6P9M6GN6ISO= |
你好 | SIUQ1PD5NK====== |
Sıkça sorulan sorular
Base32 ile Base32hex arasındaki fark nedir?
A-Z 2-7 kullanır; Base32hex ise verinin sıralamasını koruyan 0-9 A-V alfabesini kullanır. İkisi birbirinin yerine kullanılamaz.Base32hex büyük/küçük harfe duyarlı mı?
Alfabe büyük harflerle tanımlanmıştır, ancak bu kod çözücü küçük harfli girdiyi de kabul eder. Örneğin DNS etiketleri için küçük harfli çıktıya ihtiyacınız varsa "Küçük harf" seçeneğini açın.
Dolgu kullanmalı mıyım?
= ile 8 karakterin katına kadar dolgu ekler, ancak NSEC3 dahil birçok biçim dolguyu kullanmaz. Kod çözücü her ikisini de kabul eder; bu yüzden alıcı sistem ne bekliyorsa onu seçin.