Codificatore e decodificatore Base58
«Hello World» diventa JxF12TrwUP45BMd in Base58, con l'alfabeto Bitcoin di 58 caratteri senza zero, O maiuscola, I maiuscola né l minuscola, così i codici restano leggibili su carta e su schermo. Decodifica anche. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- Hello World
- Modalità di calcolo
- Encode
- Risultato
- JxF12TrwUP45BMd
- Dati in ingresso
- Hello World
- Risultato Base58
- JxF12TrwUP45BMd
- Nome dell'alfabeto
- bitcoin
Un codificatore Base58 trasforma il comune testo UTF-8 in una stringa compatta che usa solo cinquantotto caratteri inequivocabili, e un decodificatore Base58 inverte quella corrispondenza restituendole il testo originale. Questo strumento usa l'alfabeto Bitcoin: cifre e lettere senza zero, O maiuscola, I maiuscola o L minuscola, i quattro glifi che le persone confondono più spesso leggendo appunti scritti a mano, stampe di QR o indirizzi di wallet. Gli sviluppatori verificano stringhe simili a indirizzi, i docenti dimostrano radici numeriche alternative e gli script hanno bisogno di round-trip deterministici senza installare una libreria crittografica.
Cos'è il Base58 Bitcoin e perché mancano quei quattro caratteri
Base58 è una codifica da binario a testo che mappa una sequenza arbitraria di byte su un alfabeto di cinquantotto simboli. A differenza di Base64, elimina i caratteri difficili da distinguere in stampa e a voce: la cifra zero, la lettera O maiuscola, la lettera I maiuscola e la lettera L minuscola.
Il progetto Bitcoin ha reso popolare un ordinamento concreto dei simboli rimanenti (da uno a nove, poi A-Z senza I e O, poi a-z senza l), ed è quell'ordinamento che i wallet, molti explorer blockchain e questa capacità utilizzano. La codifica interpreta i byte di input come un intero big-endian in base duecentocinquantasei, divide ripetutamente per cinquantotto e mappa ogni resto sull'alfabeto; i byte zero iniziali diventano uni iniziali nell'output, la stessa convenzione seguita dagli indirizzi Bitcoin.
La decodifica inverte la corrispondenza: ogni carattere diventa una cifra da zero a cinquantasette, l'intero grande viene ricostruito e l'array di byte viene recuperato con la stessa regola degli uni iniziali. Poiché l'alfabeto non ha un carattere di padding, la lunghezza da sola non implica una dimensione di blocco fissa come in Base64; i round-trip funzionano comunque purché entrambe le parti concordino sull'alfabeto e sulla convenzione degli zeri iniziali. Quando compare un carattere fuori alfabeto (zero, O, I, l, punteggiatura o spazi), il decodificatore deve fallire in modo evidente.
Questa landing si rivolge a chi cerca un codificatore Base58, un decodificatore Base58 o un convertitore dell'alfabeto Bitcoin online; non è Base64, non è Base32 e non è un validatore completo di indirizzi Bitcoin con byte di versione e checksum.
Casi d'uso
Codici brevi sicuri per stampa e QR
Codifichi etichette brevi così i codici stampati evitano la confusione 0/O/I/l quando il personale li digita da carta o dalla fotocamera del telefono.
Insegnare radici alternative e l'alfabeto Bitcoin
Aule e workshop codificano Hello World, ispezionano l'alfabeto, poi forzano caratteri non validi per mostrare la convalida rigorosa.
Domande frequenti
Quale alfabeto usa questo codificatore Base58?
L'alfabeto Bitcoin: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz. Esclude 0, O, I e l.
Base58 è uguale a Base64?
No. Base64 usa sessantaquattro simboli inclusi +, / e il padding =, e mantiene 0 e O. Base58 è più parsimonioso sui glifi ambigui ed è comune nelle stringhe in stile Bitcoin.
Questo strumento convalida indirizzi Bitcoin completi?
No. Codifica e decodifica solo testo UTF-8 grezzo nell'alfabeto Base58 Bitcoin. Non controlla byte di versione né checksum double-SHA256.
Il codificatore Base58 è gratuito?
Lo strumento nel browser è gratuito e gira in locale.
Perché la mia stringa Base58 viene rifiutata in decodifica?
Perché contiene un carattere fuori dall'alfabeto Bitcoin, come lo zero, la O o la I maiuscole, la l minuscola, un segno di punteggiatura o uno spazio. Il decodificatore si ferma con un messaggio chiaro invece di trasformarla in silenzio in un altro testo.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/enc/base58 \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"Hello World"}'const res = await fetch("https://api.kit.forhosting.com/enc/base58", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "Hello World"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/base58",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "Hello World"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/base58", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"Hello World"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"Hello World"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/base58", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "Hello World"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.base58",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 100000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Scelga encode per convertire testo in chiaro in Base58, oppure decode per recuperare l'UTF-8 da un payload Base58; i caratteri fuori alfabeto restituiscono un chiaro errore invalid_input invece di una corruzione silenziosa.
Cos'è il Base58 Bitcoin e perché mancano quei quattro caratteri
Una sostituzione silenziosa inventerebbe un payload diverso ed è peggiore di un errore netto per wallet, checksum e test automatici.
Come chiamare l'API e cosa contiene la risposta
La modalità predefinita è encode: i byte UTF-8 di text diventano una stringa Base58 nell'alfabeto Bitcoin. Invii un corpo JSON con un campo stringa obbligatorio text (alias input, value e data) e un mode opzionale che può essere encode o decode. La modalità decode tratta text come payload Base58 e restituisce la stringa UTF-8 recuperata. La lunghezza dell'input è limitata a centomila caratteri, così una singola richiesta non può esaurire la memoria del Worker con un'espansione patologica di interi grandi. In caso di successo per encode, la risposta include mode, input, result e base58 con la stessa stringa codificata, alphabet con la costante completa di cinquantotto caratteri, alphabet_name impostato su bitcoin, input_bytes come conteggio dei byte UTF-8, output_length come conteggio dei caratteri codificati e un breve messaggio in inglese. In caso di successo per decode, la risposta include mode, input, result e text con la stringa UTF-8 decodificata, gli stessi campi dell'alfabeto, input_length, output_bytes e un messaggio corrispondente. La convalida fallita (text mancante, text non stringa, input troppo grande, mode sconosciuto, carattere Base58 non valido o byte decodificati non validi in UTF-8) restituisce invalid_input e non viene mai addebitata. Il prezzo è un fisso di $0.002 per richiesta riuscita con unità item e prezzo unitario marginale pari a zero.
Consigli pratici, limiti e differenze rispetto a Base64
I controlli di round-trip sono lo smoke test più veloce: codifichi una frase nota come Hello World, confermi il risultato classico JxF12TrwUP45BMd, poi decodifichi quella stringa e confermi di recuperare la frase originale byte per byte. Non è nemmeno Base64 o Base64URL: quegli alfabeti includono più, barra e padding con uguale, e mantengono zero e O maiuscola. Preferisca Base58 quando la sicurezza della trascrizione umana conta più della densità; preferisca Base64 quando le servono il massimo di bit per carattere e un trasporto solo macchina. In didattica, mostri la stessa frase codificata in Base58 e Base64 una accanto all'altra, così chi impara vede perché l'alfabeto Bitcoin ha un aspetto diverso e perché gli errori di copia-incolla calano quando i quattro glifi ambigui scompaiono. Includa deliberatamente un carattere proibito (cifra zero, O maiuscola, I maiuscola o L minuscola) in una richiesta di decodifica per verificare che il suo client gestisca invalid_input e il messaggio di errore che indica l'indice e i glifi esclusi. Mantenga i payload sotto il limite di caratteri pubblicato; le stringhe estremamente lunghe si espandono come interi grandi ed è meglio dividerle o gestirle offline. Questo strumento non è un parser di indirizzi Bitcoin: non elimina un prefisso di versione, non ricalcola un checksum double-SHA256 e non distingue mainnet da testnet. I compiti falliti che restituiscono invalid_input non consumano saldo prepagato, il che mantiene economici gli script esplorativi quando testa caratteri fuori alfabeto.
Casi di integrazione
Round-trip di wallet e fixture nei test
Generi stringhe Base58 note da testo di fixture e verifichi che la decodifica recuperi gli stessi byte UTF-8 in CI senza una dipendenza crittografica.
Domande tecniche
Cosa succede se decodifico una stringa che contiene 0, O, I o l?
L'API restituisce invalid_input, indica il carattere errato e il suo indice e ricorda che il Base58 Bitcoin esclude quei quattro glifi. I compiti falliti non vengono addebitati.