Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Base64 и Base58 Адреса Bitcoin кратко

Лекция



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

base64 — стандарт кодирования двоичных данных при помощи только 64 символов ASCII. Алфавит кодирования содержит текстово-цифровые латинские символы A-Z, a-z и 0-9 (62 знака) и 2 дополнительных символа, зависящих от системы реализации. Каждые 3 исходных байта кодируются 4 символами (увеличение на ¹⁄₃).

Эта система широко используется в электронной почте для представления бинарных файлов в тексте письма (транспортное кодирование).

MIME

В формате электронной почты MIME base64 — это схема, по которой произвольная последовательность байт преобразуется в последовательность печатных ASCII символов. Используются только символы латинского алфавита в верхнем и нижнем регистре — символы (A—Z, a—z), цифры (0—9), и символы «+» и «/», с символом «=» в качестве специального кода суффикса.

Полная спецификация этой формы base64 содержится в RFC 1421 и RFC 2045. Эта схема используется для кодирования последовательности октетов (байт).

Для того, чтобы преобразовать данные в base64, первый байт помещается в самые старшие восемь бит 24-битного буфера, следующий — в средние восемь и третий — в младшие значащие восемь бит. Если кодируется менее, чем три байта, то соответствующие биты буфера устанавливаются в ноль. Далее каждые шесть бит буфера, начиная с самых старших, используются как индексы строки «ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/» и ее символы, на которые указывают индексы, помещаются в выходную строку. Если кодируются только один или два байта, в результате получаются только первые два или три символа строки, а выходная строка дополняется двумя или одним символами «=». Это предотвращает добавление дополнительных битов к восстановленным данным. Процесс повторяется над оставшимися входными данными.

Например, цитата из "Левиафана" Томаса Гоббса:

Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.

будучи перекодированной из ASCII в base64, выглядит следующим образом:

 Base64  и Base58 Адреса Bitcoin

В примере, слово Man закодировано как TWFu. Процесс преобразования можно представить в виде следующей таблицы:

Исходный текст M a n
Коды ASCII 77 (0x4d) 97 (0x61) 110 (0x6e)
Двоичный вид 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
Полученный индекс в Base64 19 22 5 46
Конечный результат в Base64 T W F u

Схема соответствия «символ — значение» в Base64

Символ Значение Символ Значение Символ Значение Символ Значение
10 2 8 16 10 2 8 16 10 2 8 16 10 2 8 16
A 0 000000 00 00 Q 16 010000 20 10 g 32 100000 40 20 w 48 110000 60 30
B 1 000001 01 01 R 17 010001 21 11 h 33 100001 41 21 x 49 110001 61 31
C 2 000010 02 02 S 18 010010 22 12 i 34 100010 42 22 y 50 110010 62 32
D 3 000011 03 03 T 19 010011 23 13 j 35 100011 43 23 z 51 110011 63 33
E 4 000100 04 04 U 20 010100 24 14 k 36 100100 44 24 0 52 110100 64 34
F 5 000101 05 05 V 21 010101 25 15 l 37 100101 45 25 1 53 110101 65 35
G 6 000110 06 06 W 22 010110 26 16 m 38 100110 46 26 2 54 110110 66 36
H 7 000111 07 07 X 23 010111 27 17 n 39 100111 47 27 3 55 110111 67 37
I 8 001000 10 08 Y 24 011000 30 18 o 40 101000 50 28 4 56 111000 70 38
J 9 001001 11 09 Z 25 011001 31 19 p 41 101001 51 29 5 57 111001 71 39
K 10 001010 12 0A a 26 011010 32 1A q 42 101010 52 2A 6 58 111010 72 3A
L 11 001011 13 0B b 27 011011 33 1B r 43 101011 53 2B 7 59 111011 73 3B
M 12 001100 14 0C c 28 011100 34 1C s 44 101100 54 2C 8 60 111100 74 3C
N 13 001101 15 0D d 29 011101 35 1D t 45 101101 55 2D 9 61 111101 75 3D
O 14 001110 16 0E e 30 011110 36 1E u 46 101110 56 2E + 62 111110 76 3E
P 15 001111 17 0F f 31 011111 37 1F v 47 101111 57 2F / 63 111111 77 3F

UTF-7

UTF-7 представляет собой измененный вариант Base64. Об этом говорит сайт https://intellect.icu . Эта схема кодирования используется для файлов UTF-16 как промежуточный формат в MIME. UTF-7 предназначен для использования unicode в e-mail без транспортного кодирования содержимого. Главное отличие этого варианта base64 от MIME в том, что символ «=» не используется для дополнения, так как требуется многократное экранирование этого символа. Вместо этого биты октета дополняются нулями.

Измененный Base64 стандартизирован по RFC 2152, A Mail-Safe Transformation Format of Unicode.

IRCu

В сервер-сервер протоколе, используемом в IRC и совместимом программном обеспечении, версия base64 используется для кодирования клиент/серверных числовых и двоичных IP адресов. Клиентские и серверные числовые данные имеют фиксированные размеры, которые точно совпадают с количеством знаков base64, тем самым, нет необходимости в дополнении. Двоичные IP-адреса для соответствия расширяются ведущими нулевыми битами. Набор символов незначительно отличается от MIME использованием [] вместо +/.

Применение в веб-приложениях

Благодаря Base64, в html-документы можно включать бинарный контент, создавая единый документ без отдельно расположенных картинок и прочих дополнительных файлов. Таким образом, html-документ с включенной в него графикой, аудио, видео, программами, стилями и прочими дополнениями становится прекрасной альтернативой другим форматам сложно оформленных документов типа doc, docx, pdf.

Некоторые приложения кодируют двоичные данные для удобства включения в URL, скрытые поля форм.

Использование URL-кодировщика над стандартом Base64 не всегда удобно, так как он преобразует символы / и + в специальные шестнадцатеричные последовательности. Несмотря на то, что это преобразование обратимо, оно удлиняет итоговую длину строки и немного усложняет ее последующий разбор. Кроме того, символ %, сгенерированный URL-кодировщиком, может потребоваться экранировать еще раз при последующей передаче получившейся строки через другие системы (например, в SQL это элемент шаблона).

По причине этого существует измененный Base64 для URL, где не используется заполнение символом = и символы + и / соответственно заменяются на * и -, так что использование кодеров/декодеров URL перестает быть необходимым и не имеет никакого воздействия на длину закодированного значения, оставляя ту же самую закодированную форму, неповрежденную для использования в реляционных базах данных, веб-формах и идентификаторах объекта вообще. Стандартом Base64-кодирования URL адресов признается вариант, когда символы + и / заменяются, соответственно, на - и _ (RFC 3548, раздел 4).

Другой вариант называется измененный Base64 для регулярных выражений, использует ! и - вместо * и -, для того, чтобы заменить стандартный Base64 +/, потому что оба + и * могут быть зарезервированы для регулярных выражений (отметим, что [], используемый выше в IRCu варианте, может не работать в этом контексте).

Имеются другие варианты, которые используют _ и - или . и _, если строка Base64 должна быть использована вместе с идентификаторами для программ, или . и - для использования в токенах имен XML (Nmtoken), или _ и : в более ограниченных идентификаторах XML (Name). В некоторых случаях для URL применяется base58 , который не использует символы + и /.

Base58

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

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

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

В отличие от Base64, при кодировании не сохраняется однозначное побайтовое соответствие с исходными данными — разные комбинации одинакового количества байтов в Base58 кодируются строкой с разной длиной символов.

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

Приложение Алфавит
Адреса Bitcoin 123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz
Адреса Ripple rpshnaf39wBUDNEGHJKLM4PQRST7VWXYZ2bcdeCg65jkm8oFqi1tuvAxyz
Короткий URL для Flickr 123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ

Radix-64

Radix-64 — разновидность кодирования Base64 двоичных данных в текстовый формат, используемая в PGP. От Base64 отличается тем, что в конец добавляется контрольная сумма в 24 бита.

Операционные системы семейства Unix сохраняют вычисленные с помощью crypt хеши паролей в файл /etc/passwd, используя кодировку B64.

Она похожа на radix-64, но суффикс выравнивания «=» не используется и в алфавите небуквенные символы расположены в начале: ./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.

Другие применения

Существует множество вариантов применения Base64. Например, Thunderbird и Mozilla Suite использовали Base64 для сокрытия паролей в POP3. Base64 может использоваться как метод для сокрытия секретов без издержек на криптографическое управление ключами, однако этот подход является абсолютно небезопасным и не рекомендуется к использованию.

Сканеры спама, которые не декодируют сообщения в base64, часто пропускают сообщения в Base64, так как они кажутся достаточно случайными или не содержат ключевых слов в тексте Base64, чтобы быть принятыми за спам. Это используют спамеры для обхода основных антиспамовых инструментов.

Данный стандарт применяется для кодирования изображений формата JPEG и PNG для вставки их в электронные книги формата FB2 .

Существуют приложения, использующие технику base64 для отправки небольших изображений посредством длинных SMS.

Base64  и Base58 Адреса Bitcoin

Рис base64 vs base58

Вау!! 😲 Ты еще не читал? Это зря!

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

создано: 2022-01-10
обновлено: 2024-11-14
43



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Теория информации и кодирования

Термины: Теория информации и кодирования