Slik bruker du verktøyet
- Velg Kode for å gjøre tekst om til Base32hex, eller Dekode for å gjøre Base32hex om til tekst igjen.
- La varianten Base32hex være valgt. Slå av Utfylling eller bytt til Små bokstaver hvis formatet ditt krever det.
- Skriv eller lim inn inndataene, eller åpne en fil. Resultatet oppdateres mens du skriver.
- Kopier resultatet eller last det ned som en fil.
Hva er Base32hex?
Base32hex er «Base 32 Encoding with Extended Hex Alphabet», definert i avsnitt 7 i RFC 4648. Den fungerer akkurat som standard Base32: Hvert tegn bærer 5 bit, hver blokk på 5 byte blir 8 tegn, og utdataene fylles ut med = til et multiplum av 8. Bare alfabetet er annerledes. I stedet for A-Z 2-7 fortsetter Base32hex å telle der heksadesimalt stopper: Sifrene 0 til 9 står for 0 til 9, A er 10 og V er 31.
Fordi de to alfabetene har de fleste tegnene felles, kan en Base32hex-streng ofte mates inn i en vanlig Base32-dekoder uten at det oppstår feil, men bytene som kommer ut, blir feil. Dekod alltid med den samme varianten som ble brukt til kodingen.
Sorteringsrekkefølgen bevares
Alfabetet står i stigende ASCII-rekkefølge, og verdien til hvert tegn øker med posisjonen. Når du sammenligner to Base32hex-strenger tegn for tegn, får du derfor samme rekkefølge som når du sammenligner de underliggende bytene. RFC 4648 påpeker at dette er en egenskap som standard Base32 og Base64 mangler, og det gjør Base32hex godt egnet for nøkler i sortert lagring, som databaser og nøkkel-verdi-lagre.
Hold alle strengene med samme bokstavstørrelse, og slå av utfylling når inndataene har ulik lengde: Tegnet = sorteres mellom sifrene og bokstavene og kan ødelegge rekkefølgen.
Base32hex i DNSSEC NSEC3
NSEC3-poster, definert i RFC 5155, beviser at et DNS-navn ikke finnes, samtidig som det blir vanskeligere å liste opp alle navnene i sonen. Hvert navn hashes med SHA-1, og hashen på 20 byte skrives som en Base32hex-etikett på 32 tegn uten utfylling, vanligvis vist med små bokstaver. Fordi kodingen beholder rekkefølgen til hashene, danner de hashede navnene en sortert kjede. For å gjøre en hash om til en slik etikett limer du den inn som hex-inndata, slår av Utfylling og velger Små bokstaver. Dette verktøyet utfører bare kodingstrinnet; det beregner ikke den saltede, itererte NSEC3-hashen.
Base32hex i kode
# 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)
Spesifikasjon
| Alfabet | 0-9 A-V |
|---|---|
| Utdatastørrelse | 8 tegn per 5 byte (160 %) |
| Utfylling | Med = til et multiplum av 8 tegn |
| Standard | RFC 4648, avsnitt 7 |
| Skiller store og små bokstaver | Nei |
Eksempler
| Inndata (UTF-8) | Utdata |
|---|---|
Hello, World! | 91IMOR3F5GG5ERRIDHI22=== |
Base64.is | 89GN6P9M6GN6ISO= |
你好 | SIUQ1PD5NK====== |
Ofte stilte spørsmål
Hva er forskjellen mellom Base32 og Base32hex?
A-Z 2-7; Base32hex bruker 0-9 A-V, som bevarer sorteringsrekkefølgen til dataene. De to kan ikke brukes om hverandre.Skiller Base32hex mellom store og små bokstaver?
Alfabetet er definert med store bokstaver, men denne dekoderen godtar også inndata med små bokstaver. Slå på Små bokstaver hvis du trenger utdata med små bokstaver, for eksempel til DNS-navn.
Bør jeg bruke utfylling?
= til et multiplum av 8 tegn, men mange formater, deriblant NSEC3, utelater den. Dekoderen godtar begge deler, så velg det mottakersystemet forventer.