Base58-kodare och avkodare
Inmatning
Base58 är en binär-till-text-kodning som har utformats för att undvika flera lättförväxlade tecken. Bitcoin-alfabetet utelämnar 0 O I l och + /, medan andra system ordnar samma 58 symboler på ett annat sätt. Äldre Bitcoin-adresser med Base58Check och IPFS CIDv0-strängar är välkända exempel. Verktyget körs bara i webbläsaren, konverterar UTF-8-text eller exakta hexadecimala byte med alfabetet för Bitcoin, Ripple eller Flickr och avvisar tecken som inte ingår i det valda alfabetet.
Så kodar och avkodar du Base58
-
1
Ange bytes eller en Base58-sträng
Kodningsriktningen accepterar hex eller rå text; avkodningsriktningen accepterar Base58.
-
2
Välj alfabet vid behov
Standard är Bitcoins Base58; Ripple- och Flickr-varianter finns för kompatibilitet.
-
3
Kör konverteringen
Base58 delas inte i prydliga 5- eller 6-bitarsgrupper; det behandlas som ett enda big-endian-heltal som delas med 58 upprepade gånger.
-
4
Kopiera resultatet
Kodade strängar bevarar inledande nollbytes som inledande `1`-tecken (nollglyfen i Bitcoins alfabet).
Bitcoins Base58-alfabet
123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Lägg märke till vad som saknas: 0, O, I, l. Det första tecknet i alfabetet är 1, vilket representerar heltalet 0.
Så fungerar det egentligen
Till skillnad från Base64, som delar bitar i fasta grupper, behandlar Base58 hela bytesträngen som ett enda big-endian-heltal N och uttrycker det i bas 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'
Det är därför Base58-kodning är svår att strömma - du behöver hela talet innan du kan mata ut något tecken.
Base58 jämfört med Base58Check
Den vanliga Base58Check-nyttolasten för en äldre P2PKH-adress är 25 byte: 1 versionsbyte, 20 hashbyte och 4 kontrollsummebyte. Kontrollsumman är de första 4 byten från en dubbel SHA-256 av versionen och hashen. När hela nyttolasten kodas med Base58 fås den välkända adresssträngen.
Verktyget konverterar bara vanlig Base58. Använd en särskild Base58Check-validator när du behöver kontrollera en adressversion och kontrollsumma.
Alfabetvarianter
| Variant | Där den används | Skillnader mot Bitcoin |
|---|---|---|
| Bitcoin | BTC-adresser, IPFS CIDv0 | Baslinje |
| Ripple | XRP-adresser | Bytta positioner |
| Flickr | Korta foto-URL:er | Gemener före versaler |
Varför inte bara använda Base64?
Base64 har ingen längdförändring mellan binär och kodad text (4 tecken per 3 bytes), vilket är effektivt. Base58 har något varierande overhead men inga tvetydiga tecken, vilket är vad du vill ha när någon måste kopiera en adress för hand eller läsa upp den i telefon.
Vanliga frågor
Inte generellt. Base58 är bättre när människor hanterar strängen; Base64 är bättre när maskiner skickar runt den. Base64 kodar 6 bitar per tecken jämfört med Base58:s cirka 5.86, så Base64 är något mer kompakt.
Base58 kodar ett stort heltal, så längden varierar med ett eller två tecken beroende på de mest signifikanta bitarna. Typiska P2PKH-adresser är 34 tecken men 33 är möjligt.
Verktyget kan avkoda strängen till råa byte. Välj hexadecimal utdata för att visa valfria byte utan förlust. Versionen och kontrollsumman kontrolleras inte, så en lyckad avkodning bevisar inte att adressen är giltig. Använd en Base58Check-validator för det.
Ja. Varje nollbyte i början av indatan blir ett 1-tecken i utdata, vilket är så Bitcoin-adresser som börjar med 1 fungerar.
Relaterade verktyg
Konverterare från ETH till USD
Omvandla Ethereum (ETH) till amerikanska dollar med en live ETH/USD-kurs eller en kurs du anger själv. Se vad vilken ETH-mängd som helst är värd i USD.
Krypteringsidentifierare
Klistra in en krypterad text eller ett hashvärde; identifieraren visar sannolika algoritmer eller kodningsformer: MD5, SHA, bcrypt, AES, RSA, Base64 med flera.
Chifferidentifierare
Klistra in chiffertext så föreslår identifieraren troliga kodnings-/chifferscheman: Base64, hex, binärt, morsekod, Caesar eller substitution, JWT och vanliga hashvärden.
CSR-generator
Generera en PEM-kodad Certificate Signing Request och tillhörande RSA-privat nyckel. Ange common name, organisationsfälten och nyckelstorleken (2048, 3072 eller 4096 bitar).
HMAC-generator
Generera HMAC-signaturer (SHA-256, SHA-384, SHA-512, SHA-1, MD5) från ett meddelande och en hemlig nyckel för API-autentisering och webhooks.
Base64-filencoder
Koda valfri fil (PDF, ZIP, bild, körbar fil) till Base64-text för inbäddning i JSON, e-post, YAML eller data-URI:er. Körs lokalt, ingen uppladdning.
Verktyget finns på andra språk
- Base58 인코더 및 디코더 [KO]
- مشفر ومفكك Base58 [AR]
- Koder i dekoder Base58 [PL]
- Base58-Encoder/Decoder [DE]
- Encodeur et décodeur Base58 [FR]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- Encoder dan Decoder Base58 [ID]
- Base58 encoder en decoder [NL]
- Base58エンコーダー・デコーダー [JA]
- Bộ mã hóa và giải mã Base58 [VI]
- Codificador e Decodificador Base58 [PT]
- Codificador y Decodificador Base58 [ES]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Base58 编码器和解码器 [ZH]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]