Заданный текст |
|
Если закодировать исходный текст, получим |
Если раскодировать исходный текст, получим |
Описание метода кодироВания
Кодирование Base64 используется для преобразования двоичных данных в текстовый, как формат, что позволяет ему перевозить в условиях, которые могут обрабатывать только текст безопасно. Прецеденты кодирования UID для использования в HTTP URL, ключей шифрования для кодирования и сертификатов, чтобы сделать их безопасно портативный через электронную почту, отображать их в HTML страницах и использовать их с копирования и вставки.
Base64 иногда также упоминается как PEM, что означает конфиденциальности повышенной электронной почте. Там, Base64 был использован для создания печати текст снова после двоичных данных электронной почты, который был создан в процессе шифрования электронной почты.
Способ преобразования
Кодирование Base64 берет исходные двоичные данные и работает на нем, разделив его на лексемы трех байт.Байт состоит из восьми битов, таким образом Base64 занимает 24 бит в общей сложности. Эти 3 байта затем преобразуются в четырех печатных символов из стандарта ASCII.
Первым шагом является взять три байта (24-бит) двоичных данных и разбить его на четыре номера шести битов. Поскольку стандарт ASCII определяет использование семи бит, Base64 использует только 6 бит (соответствующие 2 ^ 6 = 64 символов), чтобы обеспечить кодированные данные для печати и ни один из специальных символов, доступных в ASCII не используются. Название алгоритма Base64 происходит от использования этих 64 символов. Символы ASCII, используемые для Base64 являются цифры 0-9, алфавиты 26 строчные и заглавные буквы 26 плюс два дополнительных символов '+' и '/'.
Таблица кодирования и декодирования по методу Base64 | |||||||||||||||
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
Q | R | S | T | U | V | W | X | Y | Z | a | b | c | d | e | f |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
w | x | y | z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | + | / |
48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 |
Технически, есть 65-й символ '=' в использовании, но больше об этом далее вниз.
Преобразование ASCII из 3 байт, 24-битовых групп повторяется, пока вся последовательность оригинальных байтов данных не закодируется. Для обеспечения кодированные данные могут быть правильно напечатаны и не превышает предел длины линии любого почтового сервера, вставляются символы новой строки, чтобы сохранить длины линии ниже 76 символов.
Что происходит, когда последний последовательность байтов данных для кодирования длиной не точно 3 байта? Если размер исходных данных в байтах не кратно трем, мы могли бы закончить с только один или два оставшихся (8-бит) байт.Решение заключается в добавлении недостающие байты, используя значение байта «0» для создания окончательного группу 3-байт. Потому что эти искусственные задней '0' не может быть закодирован с помощью таблицы кодов, введем 65-й символ: '=', чтобы представлять «0». Естественно, этот символ может появиться только в конце кодированных данных.
|