Base58

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск

Base58 — вариант кодирования цифрового кода в виде буквенно-цифрового текста на основе латинского алфавита. Алфавит кодирования содержит 58 символов. Применяется для передачи данных в разнородных сетях (транспортное кодирование). Стандарт похож на Base64, но отличается тем, что в результатах нет не только служебных кодов, но и алфавитно-цифровых символов, которые могут человеком восприниматься неоднозначно. Исключены 0 (ноль), O (заглавная латинская o), I (заглавная латинская i), l (маленькая латинская L). Также исключены символы + (плюс) и / (косая черта), которые при кодировании URL могут приводить к неверной интерпретации.

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

В отличие от Base64, при кодировании не сохраняется однозначное побайтное соответствие с исходными данными (разные комбинации одинакового количества байт кодируются строкой с разной длиной символов). По этой причине, способ хорошо подходит для кодирования больших целых чисел, но не предназначены для кодирования более длинных частей двоичных данных.

Использование[править | править вики-текст]

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

Приложение Алфавит
Адреса Bitcoin[1] 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz[2]
Адреса Ripple[3] rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz[4]
Короткий URL для Flickr[5] 123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ[6]

Пример скриптов для кодирования/декодирования в Base58 можно посмотреть на сайте Flickr[7]

Примечания[править | править вики-текст]

См. также[править | править вики-текст]