Base58 encoder en decoder
Base58 is een codering van binaire gegevens naar tekst die enkele gemakkelijk te verwarren tekens vermijdt. Het Bitcoin-alfabet laat 0 O I l en + / weg; andere systemen zetten dezelfde 58 symbolen in een andere volgorde. Oudere Bitcoin-adressen met Base58Check en IPFS CIDv0-tekenreeksen zijn bekende voorbeelden. Deze tool werkt alleen in de browser, zet UTF-8-tekst of exacte hexadecimale bytes om met het Bitcoin-, Ripple- of Flickr-alfabet en weigert tekens buiten het gekozen alfabet.
Base58 encoderen en decoderen
-
1
Voer bytes of een Base58-string in
De coderingsrichting accepteert hexadecimaal of ruwe tekst; de decoderingsrichting accepteert Base58.
-
2
Kies het alfabet indien nodig
Standaard is Bitcoin's Base58; Ripple- en Flickr-varianten zijn beschikbaar voor compatibiliteit.
-
3
Voer de conversie uit
Base58 deelt niet netjes op in 5- of 6-bitgroepen; het wordt behandeld als één enkel big-endian geheel getal, herhaaldelijk gedeeld door 58.
-
4
Kopieer het resultaat
Gecodeerde strings behouden leidende nulbytes als leidende `1`-tekens (het teken voor nul in Bitcoin's alfabet).
Het Bitcoin Base58-alfabet
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Let op wat ontbreekt: 0, O, I, l. Het eerste teken in het alfabet is 1, dat het integer 0 vertegenwoordigt.
Hoe het echt werkt
Anders dan Base64, dat bits in vaste groepen opdeelt, behandelt Base58 de hele byte-string als één enkel big-endian geheel getal N en schrijft die in basis 58:
result = []
while N > 0:
result.prepend(alphabet[N mod 58])
N = N / 58
for each leading zero byte in input:
result.prepend(alphabet[0]) # i.e. '1'
Daarom is Base58-codering niet eenvoudig te streamen, je hebt het hele getal nodig voordat je een teken kunt uitgeven.
Base58 versus Base58Check
De gebruikelijke Base58Check-payload van een ouder P2PKH-adres telt 25 bytes: 1 versiebyte, 20 hashbytes en 4 controlesombytes. De controlesom bestaat uit de eerste 4 bytes van de dubbele SHA-256-digest van versie en hash. Base58-codering van die volledige payload levert de bekende adresreeks op.
Deze tool zet alleen gewone Base58 om. Gebruik een speciale Base58Check-validator om de versie en controlesom van een adres te controleren.
Alfabetvarianten
| Variant | Waar gebruikt | Verschillen vs Bitcoin |
|---|---|---|
| Bitcoin | BTC-adressen, IPFS CIDv0 | Basis |
| Ripple | XRP-adressen | Verwisselde posities |
| Flickr | Korte foto-URL’s | Kleine letters vóór hoofdletters |
Waarom niet gewoon Base64 gebruiken?
Base64 heeft geen lengtevariatie tussen binaire en gecodeerde tekst (4 tekens per 3 bytes), wat efficiënt is. Base58 heeft iets variabele overhead maar geen dubbelzinnige tekens, precies wat je wilt wanneer iemand een adres met de hand moet kopiëren of via de telefoon moet voorlezen.
Veelgestelde vragen
Niet universeel. Base58 is beter wanneer mensen de string verwerken; Base64 is beter wanneer machines hem rondsturen. Base64 encodeert 6 bits per teken tegenover Base58’s ~5.86, dus Base64 is iets compacter.
Base58 encodeert een groot integer, dus de lengte varieert een of twee tekens afhankelijk van de high-order bits. Typische P2PKH-adressen zijn 34 tekens, maar 33 is mogelijk.
De tool kan de tekenreeks naar ruwe bytes decoderen. Kies hexadecimale uitvoer om willekeurige bytes zonder verlies weer te geven. Versie en controlesom worden niet gecontroleerd, dus een geslaagde decodering bewijst niet dat het adres geldig is. Gebruik daarvoor een Base58Check-validator.
Ja. Elke nulbyte aan het begin van de invoer wordt een 1-teken in de uitvoer, en zo werken Bitcoin-adressen die met 1 beginnen.
Gerelateerde tools
PGP-sleutelgenerator
Genereer een ASCII-gepantserd OpenPGP-sleutelpaar en intrekkingscertificaat met Curve25519, RSA 2048 of RSA 4096.
Hashgenerator
Genereer MD5-, SHA-1-, SHA-256-, SHA-384-, SHA-512- en CRC32-hashen uit tekst, met een kopieerklare digest voor checksums en vergelijkingen.
Vigenère-cijfercodeerder
Versleutel en ontsleutel berichten met het klassieke Vigenère-cijfer met een sleutelwoord. Verschuift de Latijnse letters A-Z en behoudt hoofdletters/kleine letters, spaties en leestekens.
Getal-naar-letter-code
Zet getallen om naar letters en terug met de code A=1, B=2 (A1Z26) voor puzzels, raadsels en aanwijzingen in escaperooms.
SSH-sleutelgenerator
Genereer een RSA-SSH-sleutelpaar (2048, 3072 of 4096 bits) volledig in je browser. Noch de privésleutel, noch de openbare sleutel verlaat je apparaat. Voeg een opmerking toe en download beide.
Wei naar Ether omrekenen
Reken Wei om naar Ether (ETH) met exacte berekening, zonder afronding met drijvende komma. 1 ETH = 10^18 Wei.
Tool beschikbaar in andere talen
- Base58エンコーダー・デコーダー [JA]
- Base58-kodare och avkodare [SV]
- Encodeur et décodeur Base58 [FR]
- Base58-Encoder/Decoder [DE]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Bộ mã hóa và giải mã Base58 [VI]
- Codificador y Decodificador Base58 [ES]
- Koder i dekoder Base58 [PL]
- Encoder dan Decoder Base58 [ID]
- Base58 인코더 및 디코더 [KO]
- مشفر ومفكك Base58 [AR]
- Codificador e Decodificador Base58 [PT]
- Base58 编码器和解码器 [ZH]
- Base58 Encoder and Decoder [EN]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]
- Codificatore e Decodificatore Base58 [IT]