Enviar um arquivo
  1. base64hub
  2. Outras bases
  3. Base58 para Base64

Base58 para Base64: converta chaves e hashes

Cole um valor Base58, por exemplo um endereço Solana ou um hash IPFS Qm…, e receba os mesmos bytes em Base64 padrão. Cada 1 inicial é mantido como um byte zero, então a contagem de bytes continua exata.

Grátis sem cadastro, sem limites Local nada é enviado Bytes exatos zeros à esquerda preservados Atualizado 27 de out. de 2026
Entrada 0Bytes 0 BSaída 0

Processado no seu navegador. Esta página não consegue enviar seus dados para lugar nenhum – como sabemos

Como converter Base58 em Base64

  1. Cole a string Base58 em Entrada · Base58. Quebras de linha e espaços são ignorados.
  2. Se ela não usar o alfabeto do Bitcoin, mude o Alfabeto abaixo da entrada para Flickr ou Ripple.
  3. Leia o Base64 em Saída · Base64. Abaixo da saída, desmarque Preenchimento (=) para Base64 sem preenchimento, ou ajuste a Quebra de linha em 64 ou 76 colunas.
  4. Clique em Copiar saída, ou use Base64 → Base58 no seletor de direção para o caminho inverso; a página Base64 para Base58 já começa nele.

Os contadores abaixo da ferramenta mostram o comprimento da entrada, o número de Bytes decodificados e o comprimento da saída. A contagem de bytes é o jeito mais rápido de confirmar que você colou uma chave inteira: 32 para uma chave pública Solana, 64 para uma assinatura ou um par de chaves, 34 para um IPFS CIDv0.

Exemplos

Base58Base64Bytes
9AjdvzrSGVsbG8=5, o texto Hello
11111111111111111111111111111111AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=32 bytes zero
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKk=32, programa SPL Token da Solana
QmQudp5N7EzTxrBk3yESEKyEroMYNd7R22G2KWffwNZyzqEiAmKoa2duWGnt1dGt+P/QHWKcMVS/3q7PyM+g2Q4Igtig==34, IPFS CIDv0
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNaAGLpB7FcvyfVQlOZ6/bw+1DruI8Ywpt9kw==25, endereço Bitcoin com checksum

Todo CIDv0 vira um Base64 que começa com EiA: esse é o cabeçalho de multihash 12 20 (SHA-256, 32 bytes). Remova os dois primeiros bytes e você tem o digest puro, a forma que uma ferramenta SHA-256 imprime.

Por que dados da Solana aparecem nas duas codificações

A Solana mostra chaves públicas, IDs de programas e assinaturas de transações em Base58 nas carteiras e nos exploradores. Já a API JSON-RPC dela aceita transações serializadas em Base64 ou Base58 e marca o Base58 como a opção lenta e obsoleta. Os dados de contas voltam em Base64 quando você pede essa codificação. Assim, a mesma chave de 32 bytes pode aparecer em Base58 num lugar e dentro de Base64 em outro.

A conversão não muda os bytes, o que a torna um jeito seguro de comparar dois valores: se uma chave em Base58 e uma chave em Base64 dão o mesmo Base64 aqui, elas são a mesma chave.

Base58 para Base64 em Python

A biblioteca padrão tem Base64, mas não Base58, então a primeira metade é um loop curto:

import base64

ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz"

def base58_to_base64(s: str) -> str:
    n = 0
    for ch in s:
        n = n * 58 + ALPHABET.index(ch)
    body = n.to_bytes((n.bit_length() + 7) // 8, "big")
    zeros = len(s) - len(s.lstrip("1"))
    return base64.b64encode(b"\0" * zeros + body).decode()

base58_to_base64("TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA")
# 'Bt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKk='

O ALPHABET.index lança ValueError para caracteres fora do Base58, como 0 ou l. Mais sobre Base64 em Python na página de Python.

Problemas comuns

  • Falta um byte na contagem. O conversor que você usou antes descartou um byte zero inicial. Esta página o mantém; compare as saídas.
  • Erro num 0, O, I ou l. Esses caracteres não são Base58. Procure um erro de cópia ou de OCR.
  • A entrada começa com bc1, 0x ou bafy. Isso é, respectivamente, Bech32, hex e Base32 (IPFS CIDv1), não Base58. Para um CIDv1, o decodificador Base32 explica como lê-lo.
  • A saída tem 4 bytes a mais que o esperado. A string era Base58Check, e o checksum continua anexado.

Perguntas frequentes

Como converter uma chave pública Solana em Base64?

Cole o endereço na entrada. Uma chave pública Solana válida decodifica para exatamente 32 bytes, então a saída Base64 sempre tem 44 caracteres terminando com um =, ou 43 sem preenchimento.

Por que o Base64 começa com A?

A entrada Base58 começava com 1, que decodifica para um byte zero. O Base64 tira o primeiro caractere dos primeiros 6 bits, e seis bits zero são A. É por isso que o endereço Bitcoin 1A1zP1… vira AGLp….

Como obter Base64 URL-safe em vez disso?

Copie o resultado para o Base64 para Base64URL, que troca + e / por - e _ e remove o preenchimento. Desmarque Preenchimento (=) aqui se você só precisa tirar o =.

A saída é diferente para strings Base58Check?

A conversão é a mesma, mas o Base64 passa a incluir o byte de versão e o checksum de 4 bytes. Decodifique antes com a ferramenta Base58Check se você só quer o payload.