Base58 кодирование и декодирование

Обычный текст сначала будет преобразован в байты в соответствии с UTF-8, а затем закодирован в Base58 или Base58Check.

0 Введите символы

Завершите кодирование и декодирование Base58 и Base58Check в браузере, поддерживая просмотр текста, файлов, пользовательских таблиц символов и шестнадцатеричных результатов.

Похожие

Что такое Base58 и Base58Check?

Base58 — текстовая кодировка, предназначенная для чтения и копирования человеком. Он удалит легко читаемые символы, такие как 0, O, I и l, поэтому его часто используют в таких сценариях, как короткие логотипы, коды приглашений, адреса кошельков и коды обмена в автономном режиме.

Стандартная таблица символов Bitcoin Base58 — `123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`. Эта страница поддерживает как версию алфавита Flickr, так и ваш собственный 58-значный алфавит.

Base58Check — это решение, которое добавляет 4-байтовую контрольную сумму после исходных байтов, а затем целиком кодирует ее в Base58. Он часто используется для старых биткойн-адресов, экспорта закрытых ключей WIF, кодов приглашений или строк, которые необходимо расшифровать вручную. Цель — обнаружить опечатки, пропущенные слова или вышедшие из строя ранее.

Если вы получаете двоичную полезную нагрузку, адресную полезную нагрузку или фрагмент хэша, декодированное содержимое не обязательно является читаемым текстом. В настоящее время более целесообразно переключиться на шестнадцатеричный формат для просмотра, а не ошибочно воспринимать искаженные символы как ошибку декодирования.

IPFS CIDv0 использует стандартный Base58btc вместо Base58Check; `bc1...` Этот тип биткойн-адреса принадлежит Bech32 и выходит за рамки этой страницы Base58.

Варианты использования

  • Убедитесь, что старый биткойн-адрес, строка экспорта закрытого ключа WIF или собственный код обмена Base58Check введены неправильно.
  • Кодируйте небольшие файлы, двоичные фрагменты или тестовые полезные данные в Base58 для удобной доставки в журналы, чаты или заявки.
  • Декодируйте строку Base58 в шестнадцатеричный формат, а затем проанализируйте ее на наличие байтов версии, хеша или необработанных полезных данных.
  • Сравните выходные данные Bitcoin Base58 и Flickr Base58, чтобы выяснить, почему один и тот же набор байтов дает разные результаты в разных системах.
  • Создайте собственную таблицу символов из 58 символов для внутренних кодов приглашения, коротких логотипов или автономных токенов и убедитесь, что оба конца совпадают.

Как использовать

  1. Выберите режим кодирования или декодирования; если вам нужно обрабатывать строки, вводимые человеком и подверженные ошибкам, включите опцию Base58Check.
  2. Выберите Bitcoin, Flickr или пользовательскую таблицу символов; если это частный протокол, сначала убедитесь, что обе стороны используют один и тот же набор из 58 последовательностей символов.
  3. Введите текст или загрузите файл при кодировании; вставьте строку Base58 при декодировании, переключившись на шестнадцатеричный результат, чтобы при необходимости увидеть необработанные байты.
  4. Скопируйте или загрузите сразу после просмотра вывода; если это Base58Check, страница синхронно запросит, прошла ли проверка.

Функции

  • Стандартные двойные режимы Base58 и Base58Check: обычное кодирование может выполняться напрямую, либо автоматически добавляется или проверяется 4-байтовая контрольная сумма.
  • Кодироваться могут как текст, так и файлы: обычный текст будет обрабатываться в соответствии с UTF-8, а файлы будут кодироваться в соответствии с необработанными байтами, что подходит для автономной доставки двоичного контента.
  • Результаты декодирования можно переключать между текстовыми и шестнадцатеричными числами: не зацикливайтесь на тарабарщине при обнаружении полезных данных адреса, фрагментов хэша или данных, отличных от UTF-8.
  • Поддерживает Bitcoin, Flickr и пользовательскую таблицу символов из 58 символов: подходит для совместимости с существующими системами или отладки частных решений с коротким кодом.
  • Локальная обработка и загрузка результатов в браузере: кодирование, декодирование и проверка выполняются локально, а выходные данные можно скопировать или загрузить напрямую.

Как выбрать Base58, Base58Check, Base64?

Они оба могут конвертировать байты в проходимый текст, но их цель совершенно разная. Ключ не в том, «что более продвинуто», а в том, цените ли вы больше ручную транскрипцию и предотвращение ошибок или цените компактность и универсальную совместимость.

Планболее подходящийПреимуществаПримечание
Кодировка Base64Base64 URL Безопасно
Кодировка Base32

Best Practices

Приоритет будет отдан Base58Check при расшифровке вручную или передаче службой поддержки клиентов.

Пока строка будет продиктована, сделан снимок экрана, переслана в чат или повторно введена вручную, контрольную сумму почти всегда стоит открыть. Это не предотвратит все ошибки, но значительно уменьшит количество ситуаций «выглядит правильно, но на самом деле отсутствует символ».

Если декодированный результат не является текстом, сначала посмотрите на шестнадцатеричный формат.

Содержимое, такое как полезные данные адреса, хеши, заголовки изображений и сжатые фрагменты, не обязательно будет UTF-8. Сначала переключитесь на шестнадцатеричный формат, чтобы подтвердить исходные байты, а затем решите, конвертировать ли файл, продолжить хеширование или передать его для обработки другим инструментам.

Шестигранные инструменты

Не используйте Base58 в качестве формата долговременного хранения больших файлов.

Base58 больше подходит для коротких строк и небольших и средних полезных данных. Чем больше файл, тем длиннее выходные данные, их труднее копировать и с большей вероятностью они будут усечены в форматированном тексте, инструментах чата или журналах.

При настройке таблицы символов ее необходимо синхронизировать со всеми производственными терминалами.

Пока один сервер, скрипт или клиент использует другой порядок, все результаты кодирования и декодирования будут несовпадены. Сначала исправьте последовательность из 58 символов, а затем запишите ее в протокол или тестовый образец.

Установите приоритет сравнения Base64URL, когда требуется более короткая и более общая передача по интерфейсу.

Преимущество Base58 в том, что он легко читается и предотвращает путаницу, но у него не самый маленький размер. Если строки в основном передаются между программами и не транскрибируются людьми, Base64URL обычно более компактен и распространен.

Base64 URL Безопасно

Часто задаваемые вопросы

Какой из них мне выбрать между Base58 и Base64?

Если строка должна быть прочитана, скопирована или передана другим лицам, предпочтительнее использовать Base58; если он в основном передается в программах, интерфейсах, параметрах JSON или URL, то обычно Base64 или Base64URL более компактны. Целью Base58 является читаемость и защита от обфускации, а не кратчайший результат.

Base58Check Какую проблему он решает?

Он добавляет 4-байтовую контрольную сумму к исходной полезной нагрузке, а затем кодирует всю полезную нагрузку с помощью Base58. Таким образом, когда пользователь пропускает слово, делает опечатку или пишет в неправильном порядке, инструменту легче вовремя сообщить об ошибке, вместо того, чтобы незаметно получать строку бессмысленных результатов.

Может ли эта страница проверять адреса биткойнов?

Можно проверить правильность слоя Base58Check, поэтому можно проверить, есть ли очевидные ошибки ввода в старой версии адреса Base58 или строки экспорта WIF. Однако он не будет дополнительно определять использование адреса, тип сети и тип сценария, а также не поддерживает адреса Bech32, такие как `bc1...`.

Почему код после декодирования искажается или подсказка не UTF-8?

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

Поддерживается ли кодирование и декодирование файла Base58?

Поддержка. Вы можете загружать файлы во время кодирования, и страница будет преобразована в Base58 в соответствии с исходными байтами; вы также можете загрузить исходный результат обратно после декодирования. Чем больше файл, тем длиннее выходная строка, что делает его более подходящим для небольших и средних рабочих нагрузок или сценариев отладки.

Какие таблицы символов поддерживаются?

В настоящее время поддерживаются стандарты Bitcoin Base58, Flickr Base58 и пользовательскую таблицу символов из 58 символов. Пока сторона кодирования и сторона декодирования используют одну и ту же последовательность символов, они могут взаимодействовать друг с другом.

Может ли он обрабатывать IPFS CID или другие строки в цепочке?

CIDv0 Такие стандартные строки Base58btc могут напрямую кодироваться или декодироваться; но страница не будет продолжать анализировать многобазовую, мультикодековую или конкретную семантику цепочки. Строки Bech32, такие как `bc1...`, не попадают в область действия Base58.

Будет ли загруженный контент отправлен на сервер?

Нет. Текст, файлы и результаты контрольной суммы Base58Check обрабатываются локально в браузере, что подходит для отладки конфиденциальных нагрузок, данных автономного тестирования или фрагментов файлов, которые неудобно загружать.

Устранение неполадок

Совет содержит недопустимые символы Base58.

Текущая таблица символов не принимает исключенные символы, такие как 0, O, I и l. Также может быть, что вы вырезали неправильную таблицу Bitcoin/Flickr/пользовательских символов. Сначала подтвердите источник строки, а затем проверьте, соответствует ли таблица символов другой стороне.

Base58Check проверка не удалась

Обычно это означает, что строка была недокопирована, символы написаны неправильно или это не сам Base58Check. Сначала подтвердите, действительно ли вам нужно открыть Base58Check, а затем вернитесь и проверьте, полно ли исходное содержимое.

Пользовательскую таблицу символов невозможно сохранить.

Таблица пользовательских символов должна иметь длину ровно 58 символов, и каждый символ должен встречаться только один раз. Рекомендуется сначала изменить стандартную таблицу символов Bitcoin, чтобы избежать пропущенных или повторяющихся символов.

Декодированный результат не является текстом

Это не обязательно ошибка. Многие строки Base58 изначально содержат двоичные полезные данные. Переключитесь на шестнадцатеричный формат для просмотра или загрузите результаты декодирования в виде файла, а затем примите решение о следующем шаге.

Глоссарий

Base58
58-битная кодировка текста, которая удаляет легко путающиеся символы, такие как 0, O, I, l и т. д., подходит для ручного ввода и совместного копирования.
Base58Check
После исходной полезной нагрузки добавляется 4-байтовая контрольная сумма, а затем вся кодировка Base58 используется для более раннего обнаружения ошибок ввода.
Полезная нагрузка
Перед кодированием выполните необработанное байтовое содержимое Base58 или Base58Check, которое может быть текстом, байтами файла, полезной нагрузкой адреса или произвольными двоичными данными.
Контрольная сумма
Короткие отпечатки пальцев для быстрой проверки ошибок. Base58Check удвоит SHA-256 в полезной нагрузке и примет первые 4 байта в качестве контрольной суммы.
Bitcoin Base58 Таблица символов
Самая распространенная таблица символов Base58: 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz.
Flickr Base58
Flickr — это другой набор сортировки, используемый Base58. Порядок регистра отличается от версии Bitcoin, поэтому одни и те же байты будут выводиться по-разному.

Таблица символов, поддерживаемая текущей страницей

Для одного и того же набора байтов, если порядок таблицы символов разный, окончательный вывод Base58 будет другим.

таблица символовОбычное использованиеОписание

Когда следует переключиться на шестнадцатеричный просмотр?

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

Обнаружен контентЛучший способ просмотраПричина

Authoritative References