Base58 кодер / декодер

Кодирование и декодирование Base58 с алфавитами Bitcoin, Flickr или Ripple для текста и файлов до 1 МиБ. Локально в браузере, без загрузки на сервер.

Введённые данные и файлы остаются в браузере

Введите текст для кодирования или вставьте Base58 для декодирования — или перетащите файл ниже.

Перетащите файл сюда

Если выбран файл, он будет использован вместо текстового ввода.

Опции декодирования

Здесь появится результат кодирования или декодирования.

На этой странице

Кодируйте текст и небольшие файлы в Base58 и декодируйте обратно в алфавите Bitcoin, Flickr или Ripple. Преобразование выполняет WebAssembly-модуль, собранный из Rust, прямо в браузере — вставленные ключи и идентификаторы остаются на устройстве.

Подробное описание функциональности

Base58 использует 58 букв и цифр и исключает похожие символы 0, O, I и l, а также + и /, поэтому закодированные значения легко читать, перепечатывать и выделять двойным щелчком. На этой кодировке построены адреса Bitcoin, хеши IPFS CIDv0 и ключи Solana. Доступны три алфавита: Bitcoin (самый распространённый), Flickr (строчные буквы идут раньше заглавных, применяется в коротких ссылках) и Ripple (XRP Ledger).

В отличие от Base64, Base58 рассматривает весь ввод как одно большое число: паддинга нет, а каждый ведущий нулевой байт превращается в ведущую 1 в алфавите Bitcoin. Объём вычислений растёт квадратично с размером ввода, поэтому кодирование ограничено 1 МиБ, а декодирование — 2 000 000 символов; для больших файлов используйте Base64 или Hex.

Это «чистый» Base58: инструмент не добавляет и не проверяет 4-байтовую контрольную сумму Base58Check, которая есть в адресах Bitcoin и ключах WIF, поэтому при декодировании адреса вы получите байт версии, данные и контрольную сумму вместе. Байты, которые не являются текстом в выбранной кодировке, можно сохранить через Скачать.

Практические примеры

Алфавит Bitcoin: Hello World! кодируется в 2NEpo7TZRRrLZSi2U, а декодирование этой строки возвращает Hello World!.

Другие алфавиты: тот же текст в Flickr даёт 2nePN7syqqRkyrH2t, в Ripple — p4NFofTZRRiLZS5p7.

Недопустимый символ: 2NEpo0TZRRrLZSi2U (ноль вместо 7) отклоняется — 0 нет ни в одном алфавите Base58.

Адрес Bitcoin: декодирование 1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa даёт 25 сырых байт (версия, хеш и контрольная сумма); инструмент сообщит, что это не текст, а Скачать сохранит их.

Как использовать этот инструмент

  1. Введите текст или выберите файл

    Вставьте текст в поле Ввод (текст) либо перетащите на страницу файл до 1 МиБ или нажмите Выбрать файл.

  2. Выберите алфавит

    В поле Алфавит выберите Bitcoin (Base58), Flickr или Ripple. Кодировка текста меняйте, только если текст не в UTF-8.

  3. Закодируйте или декодируйте

    Нажмите Кодировать, чтобы получить Base58, или Декодировать, чтобы восстановить текст или байты. Декодируйте тем же алфавитом, которым кодировали.

  4. Скопируйте или скачайте

    Копировать помещает результат в буфер обмена, Скачать сохраняет его в файл; бинарный результат можно только скачать.

Советы и лучшие практики

  • Результат Base58 примерно на 37% длиннее исходных данных — чуть длиннее, чем Base64, зато без неоднозначных символов.
  • Ведущие символы 1 в строке алфавита Bitcoin означают ведущие нулевые байты; если их удалить, декодированное значение изменится.
  • Строка, декодированная не тем алфавитом, даёт другие байты или ошибку: 2NEpo7TZRRrLZSi2U с выбранным Ripple превращается в 13 байт двоичных данных вместо Hello World!.
  • Пробелы и переносы во вводе пропускаются, пока включено Разрешить пробелы/переводы строк, — удобно для ключей, разбитых на строки.
  • Для файлов больше 1 МиБ используйте Base64 или Hex: они работают за линейное время.