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

Конвертер Base64 в Base58 онлайн

Вставьте Base64 и получите те же байты в Base58 с алфавитом Bitcoin, который используют Solana и IPFS. URL-safe Base64, отсутствующее дополнение и переносы строк допускаются.

Бесплатно без регистрации и ограничений Локально ничего не загружается Нестрогий ввод URL-safe Base64 и Base64 без дополнения Обновлено 27 окт. 2026 г.
Ввод 0Байты 0 BРезультат 0

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

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

  1. Вставьте строку Base64 в поле Ввод · Base64. Подходят и стандартные, и URL-safe символы, а также отсутствующее дополнение =, переносы строк и префикс data:.
  2. Результат появится в поле Результат · Base58.
  3. Для алфавита, отличного от алфавита Bitcoin, выберите его в поле Алфавит под результатом. Flickr и Ripple используют те же 58 символов в другом порядке.
  4. Нажмите Скопировать результат или кнопку Base58 → Base64 в переключателе направления, чтобы вернуться обратно. Страница Base58 в Base64 сразу открывается в этом направлении.

Преобразование идёт через сырые байты: Base64 декодируется, и байты кодируются в Base58. Ничего не добавляется и не теряется: из 32 байт ключа получаются те же 32 байта.

Примеры

Base64Base58Что это
SGVsbG8=9AjdvzrТекст Hello
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=1111111111111111111111111111111132 нулевых байта: System Program в Solana
Bt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKk=TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DAID программы SPL Token в Solana
Bt324ddloZPZy-FGzut5rBy0he1fWzeROoz1hX7_AKkTokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DAТот же ключ в URL-safe Base64 без дополнения

По двум последним строкам видно, что формат ввода не важен: в обоих случаях декодируются одни и те же 32 байта.

Как собрать CIDv0 для IPFS из дайджеста SHA-256

CIDv0 получается кодированием мультихеша в Base58: байты 12 (SHA-256) и 20 (длина 32 байта), а за ними дайджест. Многие инструменты печатают дайджест SHA-256 в Base64, и если конвертировать только его, строки Qm… не получится:

БайтыBase64Base58
Только дайджестJiqGtnblhp7dXRrfj/0B1inDFUv96uz8jPoNkOCILYo=3Zz6yE7jDUVDb6doCEWrK58or4X2TmTLBiJeyWY4NHvq
12 20 + дайджестEiAmKoa2duWGnt1dGt+P/QHWKcMVS/3q7PyM+g2Q4Igtig==QmQudp5N7EzTxrBk3yESEKyEroMYNd7R22G2KWffwNZyzq

EiA в начале второй строки Base64 кодирует заголовок 12 20, так что мультихеш в Base64 легко узнать. Чтобы добавить заголовок самостоятельно, переведите дайджест через Base64 в hex, допишите в начало 1220 и закодируйте hex на странице Base58, выбрав в поле Из значение Hex.

Это помогает, только если у вас уже есть дайджест, который вычислил IPFS. IPFS хеширует блок UnixFS файла, а не сам файл, поэтому sha256sum от файла не даёт его CID.

Длина: Base64 и Base58

БайтыBase64Base58 (случайные данные)
162421 или 22
2028от 26 до 28
324443 или 44
648887 или 88

Длина Base64 зависит только от числа байтов. Длина Base58 зависит ещё и от значения, поэтому адреса Solana бывают от 32 до 44 символов. Не проверяйте Base58 по точной длине.

То же преобразование в JavaScript

Node.js декодирует Base64 встроенными средствами, а для половины с Base58 нужен BigInt:

const ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";

function base64ToBase58(b64) {
  const bytes = Buffer.from(b64, "base64");
  let n = BigInt("0x" + (bytes.toString("hex") || "0"));
  let out = "";
  while (n > 0n) {
    out = ALPHABET[Number(n % 58n)] + out;
    n /= 58n;
  }
  for (const b of bytes) {
    if (b !== 0) break;
    out = "1" + out;
  }
  return out;
}

base64ToBase58("Bt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKk=");
// 'TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'

Buffer.from(…, "base64") принимает и URL-safe ввод. Функция опирается на Buffer из Node; подробнее о нём рассказывает статья Base64 в Node.js.

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

Можно ли перевести Base64 в Base58, не декодируя в байты?

Посимвольно нельзя. Base64 кодирует фиксированные группы по 6 бит, а Base58 рассматривает все байты как одно число, поэтому любой конвертер сначала декодирует Base64 в байты и заново кодирует их. Так работает и эта страница.

Почему результат в Base58 иногда короче, чем Base64?

В Base58 нет дополнения, а каждый ведущий нулевой байт стоит один символ. 32 байта всегда занимают 44 символа Base64 (с =), а в Base58 43 или 44, и только 32, если все байты нулевые.

Какой алфавит Base58 использует Solana?

Алфавит Bitcoin, он здесь выбран по умолчанию. Варианты Flickr и Ripple выбираются в поле Алфавит.

Почему результат в Base58 не начинается с Qm?

Qm даёт двухбайтовый заголовок мультихеша 12 20. Если в вашем Base64 только 32-байтовый дайджест SHA-256, сначала допишите эти два байта в начало, как описано на этой странице.