Base58

Кодирование и декодирование Base58 (алфавит Bitcoin)

Нашли ошибку или хотите предложить улучшение?

Улучшить калькулятор «Base58»

Теория

Base58 — вариант кодирования «в текстовое число»: данные представляют как большое целое и последовательно делят на 58, превращая остатки в символы алфавита. Из алфавита исключены похожие символы — 0, O, I, l — и знаки \(+\) и \(/\), поэтому записи удобно копировать и диктовать.

Base58 прославился как формат адресов Bitcoin, откуда пришёл и его вариант Base58Check с контрольной суммой. Кодировка компактнее Base64 — длина близка к объёму исходных данных.

Важно: как и другие кодировки, Base58 не защищает данные — раскодирование доступно каждому.

Пример с решением

  1. Условие. Закодируйте «Hello World!» в Base58.
  2. Формула. Байты → большое число → деление на 58 с записью остатков.
  3. Подстановка. Число из 12 байтов последовательно делится на 58.
  4. Вычисление. Остатки в обратном порядке дают символы алфавита: 2NEpo7TZRRrLZSi2U.
  5. Ответ. «Hello World!» → «2NEpo7TZRRrLZSi2U». Калькулятор с этой строкой покажет ту же запись; декодирование вернёт исходник.

Главное

  • Алфавит 58 символов — без 0, O, I, l, \(+\), \(/\).
  • Данные — как большое число, деление на 58.
  • Применение — адреса криптовалют.