Загрузить файл
  1. base64hub
  2. Другие BaseN
  3. Base58 в Base64

Base58 в Base64: конвертация ключей и хешей

Вставьте значение Base58, например адрес Solana или хеш IPFS Qm…, и получите те же байты в стандартном Base64. Каждая ведущая 1 сохраняется как нулевой байт, так что число байтов остаётся точным.

Бесплатно без регистрации и ограничений Локально ничего не загружается Точные байты ведущие нули сохраняются Обновлено 27 окт. 2026 г.
Ввод 0Байты 0 BРезультат 0

Обработка идёт в браузере. Эта страница не может никуда отправить ваши данные – откуда мы это знаем

Как перевести Base58 в Base64

  1. Вставьте строку Base58 в поле Ввод · Base58. Переносы строк и пробелы игнорируются.
  2. Если используется не алфавит Bitcoin, поменяйте Алфавит под полем ввода на Flickr или Ripple.
  3. Готовый Base64 смотрите в поле Результат · Base64. Под результатом снимите флажок Дополнение (=) для Base64 без дополнения или выберите в Перенос строк 64 или 76 колонок.
  4. Нажмите Скопировать результат. Для обратной операции есть кнопка Base64 → Base58 в переключателе направления; с этой операции начинается страница Base64 в Base58.

Счётчики под инструментом показывают длину ввода, число декодированных байтов (Байты) и длину результата. По числу байтов быстрее всего проверить, что ключ вставлен целиком: 32 для открытого ключа Solana, 64 для подписи или пары ключей, 34 для IPFS CIDv0.

Примеры

Base58Base64Байты
9AjdvzrSGVsbG8=5, текст Hello
11111111111111111111111111111111AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=32 нулевых байта
TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKk=32, программа Solana SPL Token
QmQudp5N7EzTxrBk3yESEKyEroMYNd7R22G2KWffwNZyzqEiAmKoa2duWGnt1dGt+P/QHWKcMVS/3q7PyM+g2Q4Igtig==34, IPFS CIDv0
1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNaAGLpB7FcvyfVQlOZ6/bw+1DruI8Ywpt9kw==25, адрес Bitcoin с контрольной суммой

Любой CIDv0 в Base64 начинается с EiA: это заголовок multihash 12 20 (SHA-256, 32 байта). Без первых двух байтов останется голый хеш в том виде, в каком его печатает инструмент для SHA-256.

Почему данные Solana встречаются в обеих кодировках

Solana показывает открытые ключи, ID программ и подписи транзакций в Base58 в кошельках и обозревателях. А её JSON-RPC API принимает сериализованные транзакции в Base64 или Base58 и помечает Base58 как медленный и устаревший вариант. Данные аккаунтов возвращаются в Base64, если запросить эту кодировку. Поэтому один и тот же 32-байтный ключ может в одном месте выглядеть как Base58, а в другом лежать внутри Base64.

Конвертация не меняет байтов, поэтому это надёжный способ сравнить два значения: если ключ в Base58 и ключ в Base64 дают здесь одинаковый Base64, это один и тот же ключ.

Base58 в Base64 на Python

В стандартной библиотеке есть Base64, но нет Base58, так что для первой половины хватит короткого цикла:

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='

ALPHABET.index выбрасывает ValueError на символах вне Base58, например 0 или l. Base64 в Python подробно разобран на странице про Python.

Типичные проблемы

  • Не хватает одного байта. Конвертер, которым вы пользовались раньше, отбросил ведущий нулевой байт. Эта страница их сохраняет; сравните результаты.
  • Ошибка на 0, O, I или l. Этих символов нет в Base58. Проверьте, не ошибка ли это копирования или распознавания текста.
  • Ввод начинается с bc1, 0x или bafy. Это соответственно Bech32, hex и Base32 (IPFS CIDv1), а не Base58. Как читать CIDv1, объясняет декодер Base32.
  • Результат на 4 байта длиннее ожидаемого. Строка была в Base58Check, и контрольная сумма всё ещё на месте.

Вопросы и ответы

Как перевести открытый ключ Solana в Base64?

Вставьте адрес в поле ввода. Корректный открытый ключ Solana декодируется ровно в 32 байта, поэтому результат Base64 всегда занимает 44 символа с одним = на конце или 43 без дополнения.

Почему Base64 начинается с A?

Ввод Base58 начинался с 1, а она декодируется в нулевой байт. Первый символ Base64 берётся из первых 6 бит, а шесть нулевых бит дают A. Поэтому адрес Bitcoin 1A1zP1… превращается в AGLp….

Как получить URL-safe Base64?

Скопируйте результат в Base64 в Base64URL: там + и / заменяются на - и _, а дополнение убирается. Если нужно только отбросить =, снимите здесь флажок Дополнение (=).

Отличается ли результат для строк Base58Check?

Конвертация та же, но в Base64 попадут байт версии и 4-байтная контрольная сумма. Если нужна только полезная нагрузка, сначала декодируйте строку инструментом Base58Check.