Перейти к содержимому

Конвертер Base32, Base58 и Ascii85

Кодируйте текст или сырые байты в Base32, Base58, Ascii85 или Z85 либо декодируйте любой из них обратно — с собственным алфавитом и правилами дополнения каждой кодировки. Таблица хода вычислений показывает, как первые байты превращаются в символы. Base64 описан в инструменте «Кодировщик и декодировщик текста». Работает в браузере; ничего не загружается.

Режим

Буквы A–Z и цифры 2–7, пять битов на символ, дополнение = до кратности восьми символам. При декодировании регистр не важен.

Как это было вычислено

Байты записываются битами и делятся на группы по пять. Каждая группа — число от 0 до 31, и оно выбирает один символ.

БитыЗначениеСимвол
010019J
000011B
1001018S
1011022W
1100024Y
11011273
000113D
0111115P
001015F
1000016Q
1000016Q
001015F
0111014O
11011273
11011273
1001018S

Показаны первые 16 строк.

Как пользоваться конвертером кодировок Base

  1. 1. Выберите кодировку. Base32, Base32 с расширенным hex-алфавитом, Base58 с алфавитом Bitcoin, Ascii85 в варианте Adobe или Z85. Примечание под меню описывает выбранную кодировку.
  2. 2. Укажите, что за данные. Текст читается как байты UTF-8. Байты в hex позволяет кодировать произвольные двоичные данные, например ключ, которые вводятся парами вида 86 4f d2 6f.
  3. 3. Кодируйте или декодируйте. Кодирование даёт текст из алфавита выбранной кодировки. Декодирование возвращает байты, которые показываются как текст или hex. Пробелы и переносы строк во вводе игнорируются.
  4. 4. Проверьте параметры. Base32 можно записывать с дополнением = или без него. Ascii85 можно заключить в <~ и ~> и записывать четыре нулевых байта как z.

Для чего нужны эти кодировки

Ни одна из них не является шифрованием. Каждая превращает байты, которые могут быть непечатаемыми, в текст, который можно вставить в письмо, URL, QR-код или конфигурационный файл, и любой, кто знает название кодировки, может её обратить. Они различаются алфавитом и тем, насколько закодированный текст длиннее данных.

КодировкаСимволовДлина относительно байтовHello, World превращается в
Base32 (RFC 4648)32в 8 ÷ 5 раза длиннееJBSWY3DPFQQFO33SNRSA====
Base32 с расширенным hex32в 8 ÷ 5 раза длиннее91IMOR3F5GG5ERRIDHI0====
Base58 (Bitcoin)58примерно в 1,37 раза2NEpo7TZsLBYdvo5V
Ascii85 (Adobe)85в 5 ÷ 4 раза<~87cURD_*#4DfTZ)~>
Z85 (ZeroMQ)85в 5 ÷ 4 разаnm=QNz.92jz/PV8

Base32

Base32 разбивает байты на 5-битные группы и записывает каждую одним из 32 символов — A–Z и 2–7. Используются только цифры от 2 до 7, без 0, 1 и 8, которые похожи на O, I и B; регистр букв не учитывается, поэтому её можно продиктовать вслух или набрать. Знак дополнения = округляет длину до кратной восьми. RFC 4648 приводит тестовые векторы, например foobar → MZXW6YTBOI======. Секреты приложений-аутентификаторов и адреса onion-сервисов Tor записываются в Base32.

Base58

Base58 рассматривает весь ввод как одно большое число и записывает его в системе с основанием 58, не используя 0, O, I и l, а также символы + и /, поэтому результат можно скопировать двойным щелчком и его трудно прочесть неверно. Каждый ведущий нулевой байт записывается как первый символ, 1. Алфавит Bitcoin — один из нескольких алфавитов Base58; у Ripple и Flickr символы упорядочены иначе, поэтому проверьте, какой использовали ваши данные. Адреса Bitcoin добавляют сверху контрольную сумму и байт версии — эта схема называется Base58Check, и данный инструмент её не вычисляет.

Ascii85 и Z85

Обе читают четыре байта как 32-битное число и записывают его пятью цифрами по основанию 85, поэтому они всего на 25 процентов длиннее данных. Ascii85 от Adobe, используемая в PostScript и PDF, берёт символы от ! до u, сокращает четыре нулевых байта до z и обычно заключает данные в <~ и ~>. Последняя группа из одного-трёх байтов даёт на один символ больше, чем байтов. Z85, определённая в RFC 32 ZeroMQ, использует другой 85-символьный алфавит, выбранный так, чтобы в исходном коде не было кавычек и обратных слешей; у неё нет сокращения z и нет короткой последней группы, поэтому вход должен быть кратен четырём байтам. Пример из спецификации — восемь байтов 86 4f d2 6f b5 59 f7 5b, которые кодируются в HelloWorld. Существуют и другие алфавиты base85, например из RFC 1924, который использует Git, поэтому подбирайте алфавит по источнику.

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

Base32 или Base58 — это шифрование?
Нет. Это кодировки: любой может их обратить, потому что алфавит и правила открыты. Они делают данные печатаемыми и удобными для копирования, но не секретными.
Почему Base58 не использует некоторые символы?
Чтобы избежать похожих символов и знаков. Из алфавита исключены 0 (ноль), O (латинская заглавная O), I (латинская заглавная I) и l (латинская строчная L) — во многих шрифтах их легко спутать — а также + и /, которые ломают выделение двойным щелчком. Остаются 58 символов.
Как декодировать строку Base32?
Выберите Base32, переключитесь на «Декодировать» и вставьте строку. Регистр не важен, а завершающие знаки = необязательны. Если появляется ошибка с перечислением символов, строка, вероятно, в Base32 с расширенным hex, в Base64 или в другой кодировке.
В чём разница между Ascii85 и Z85?
Обе используют пять символов на четыре байта, но их алфавиты различаются. Ascii85 использует символы от ! до u, имеет сокращение z для нулей и может быть заключена в <~ и ~>. Z85 использует алфавит, безопасный для исходного кода, и не имеет сокращений.
Почему Z85 требует кратности четырём байтам?
Спецификация Z85 не определяет дополнения. Её данные должны быть целым числом 4-байтовых групп, а текст — кратным пяти символам. Добавьте байты сами или используйте Ascii85, которая обрабатывает короткую последнюю группу.
Как закодировать строку в Base64?
Этот инструмент Base64 не делает. «Кодировщик и декодировщик текста» переводит текст в Base64, URL и HTML-сущности и обратно, а «Шифр XOR» может показать hex-байты в виде Base64.

Похожие инструменты

Ещё в разделе «Коды и шифры»