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
Vigenère-chifferkodare
Kryptera och dekryptera meddelanden med det klassiska Vigenère-chiffret med ett nyckelord. Förskjuter de latinska bokstäverna A-Z och bevarar versaler/gemener, mellanslag och skiljetecken.
Wei till Ether-omvandlare
Omvandla Wei till Ether (ETH) med exakt aritmetik, utan flyttalsavrundning. 1 ETH = 10^18 Wei.
TOTP-generator
Generera tidsbaserade engångslösenord (RFC 6238) från en Base32-hemlighet, med SHA-1, SHA-256 eller SHA-512, 6 till 8 siffror och 30 eller 60 sekunders period.
SHA1-hashgenerator
Generera SHA-1-hashar (40 hex-tecken) från valfri textinmatning. Användbart för äldre checksummor, git-objekt-ID:n och integritetskontroller utan säkerhetskrav.
Textkrypteringsverktyg
Kryptera och dekryptera textmeddelanden med AES med ett lösenord så att bara mottagaren kan läsa dem.
SSH-nyckelgenerator
Skapa ett RSA-SSH-nyckelpar (2048, 3072 eller 4096 bitar) helt i din webbläsare. Varken den privata eller den publika nyckeln lämnar din enhet. Lägg till en kommentar och ladda ner båda.
Verktyget finns på andra språk
- Koder i dekoder Base58 [PL]
- Encoder dan Decoder Base58 [ID]
- Base58エンコーダー・デコーダー [JA]
- Encodeur et décodeur Base58 [FR]
- Bộ mã hóa và giải mã Base58 [VI]
- Base58 encoder en decoder [NL]
- ตัวเข้ารหัสและถอดรหัส Base58 [TH]
- مشفر ومفكك Base58 [AR]
- Base58-Encoder/Decoder [DE]
- Codificador y Decodificador Base58 [ES]
- Base58 인코더 및 디코더 [KO]
- Codificador e Decodificador Base58 [PT]
- Base58 Encoder and Decoder [EN]
- Codificatore e Decodificatore Base58 [IT]
- Кодировщик и декодировщик Base58 [RU]
- Base58 Kodlayıcı ve Çözücü [TR]
- Base58 编码器和解码器 [ZH]