hex-код символа Каждому символу соответствует его номер. (Смотри статьи "ASCII_32-127" и
"1251Windows") Так например символу "b" соответствует номер 98 в десятичной системе или 62 в шестнадцатеричной. Символу "e" соответствует номер 65 в шестнадцатеричной.
Узнать, какому символу соответствует какой номер в шестнадцатеричной системе можно набрав его с клавиатуры в окошечке и нажав кнопку:
62
Если каждому символу в слове best поставить в соответствие его номер в шестнадцатеричной системе, то получим запись этого слова в так называемом hex-коде: 62 65 73 74 в котором одна двузначная цифра соответствует одному байту.
С этого места начинается кодировка Base64
Имея hex-код его можно закодировать в Base64
Двоичный код символа Если в первом байте (число 62 в шестнадцатеричной системе) перевести первое число (число 6) в двоичную систему, то оно будет выглядеть так: 110 Чтобы оно состояло из четырёх цифр допишем спереди нуль, который не изменит это число, получим: 0110
Узнать, какому числу в шестнадцатеричной системе соответствует какой номер в двоичной системе можно набрав его с клавиатуры в окошечке и нажав кнопку:
110
Если каждому символу в слове best поставить в соответствие его номер в двоичной системе, то получим: 0110 0010 0110 0101 0111 0011 0111 0100 Соединим эти числа в месте:
01100010011001010111001101110100 И разобьём по шесть:
011000 100110 010101 110011 011101 00 Так как последнее число не полное, допишем ему в конце нули:
011000 100110 010101 110011 011101 000000 Переход в десятичную систему Первое двоичное число 011000 равно 24 в десятичной системе.
Узнать, какому числу в двоичной системе соответствует какое число в десятичной системе можно набрав его с клавиатуры в окошечке и нажав кнопку:
24
Получим такие числа:
24 38 21 51 29 00 Переход к Base64 Рассмотрим такую строчку символов:
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=
В ней на двадцать четвёртом месте стоит символ "Y" (отсчёт начинается с нуля, а не с единицы!) на тридцать восьмом месте стоит символ "m"
Получаем символы, стоящие на местах с номерами 24 38 21 51 29 00:
YmVzdA (их нужно писать без пробела)
Получилось шесть символов. Чтобы их количество стало кратно четырём в конец последовательности дописывается два символа "="
Получим: YmVzdA== Это и есть запись слова best в кодировке Base64 Название этого сайта best-of-best.narod.ru в кодировке Base64 будет выглядеть так:
YmVzdC1vZi1iZXN0Lm5hcm9kLnJ1 Закодированные данные примерно на 33% больше, чем исходные.Декодирование Base64 Если у нас есть текст записанный в Base64 например:
YmVzdA== Смотрим на каком месте стоит первый символ "Y" в приведённой выше строке. Он стоит на двадцать четвёртом месте (считая от нулевого), заменяем его на число двадцать четыре. Проделав то же с другими символами получим такие десятичные числа:
24 38 21 51 29 00 Переведём каждое из них в двоичную систему, получим:
011000 100110 010101 110011 011101 000000 Узнать, какому числу в десятичной системе соответствует какой номер в двоичной системе можно набрав его с клавиатуры в окошечке и нажав кнопку:
011000
Если число получаемых цифр меньше шести дописываем спереди нули.
Соединим эти числа в месте:
01100010011001010111001101110100 И разобьём по четыре:
0110 0010 0110 0101 0111 0011 0111 0100 Превратим их в шестнадцатеричные:
62 65 73 74 Узнать, какому числу в двоичной системе соответствует какие число в шестнадцатеричной системе можно набрав его с клавиатуры в окошечке и нажав кнопку:
6
На этом месте заканчивается декодировка Base64
hex-коду 62 соответствует символ b,
hex-коду 65 соответствует символ e,
hex-коду 73 соответствует символ s,
hex-коду 74 соответствует символ t,
Получим: best
Кроме приведённой выше строки символов base64 есть ещё
base64 UU !"#$%&''()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_
и base64 XX
+-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
и возможно другие, содержащие 64 символа, но это не тема данной статьи.
Кодирование текста в Base64 подручными средствами
Вставьте в блокнот нужный текст и сохраните его как Name.txt
Откройте Outlook Expres
Сообщение > Создать
В открывшемся окне для создания письма нажать кнопку "Влож..." с рисунком скрепки
Находим обзором файл Name.txt
Файл > Сохранить как > Name.eml
Открыть созданный файл Name.eml блокнотом.
После строки filename="Name.txt" будет наш текст, переведённый в Base64
Ограничения:
Если текст только английский то он останется каким был
Если текст русский но короткий, он закодируётся не в Base64. Например, слово сайт станет выглядеть так =D1=E0=E9=F2
Если текст русский и английский, но короткий, то русские буквы закодируётся не в Base64, а английские останутся какими были. Например, текст Сайт: best-of-best.narod.ru станет выглядеть так =D1=E0=E9=F2: best-of-best.narod.ru
Декодирование текста подручными средствами
Откройте Outlook Expres
Сообщение > Создать
В открывшемся окне для создания письма пишем qqqqqqq
Файл > Сохранить как > Name.eml
Открыть созданный файл Name.eml блокнотом.
В конце письма, после строки Content-Transfer-Encoding: quoted-printable будет что то вроде этого
Content-Transfer-Encoding: quoted-printable
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content=3D"text/html; charset=3Dkoi8-r" http-equiv=3DContent-Type>
<META content=3D"MSHTML 5.00.2919.6307" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3D"Arial Cyr" =
size=3D2>qqqqqqq</FONT></DIV></BODY></HTML>
------=_NextPart_000_0030_01CA4C0C.869DFDA0--
В место средней части вставляем наш текст, закодированный в Base64
(например такой YmVzdC1vZi1iZXN0Lm5hcm9kLnJ1 ) Получим:
Content-Transfer-Encoding: quoted-printable
YmVzdC1vZi1iZXN0Lm5hcm9kLnJ1
------=_NextPart_000_0030_01CA4C0C.869DFDA0--
В место quoted-printable пишем base64 Получим:
Content-Transfer-Encoding: base64
YmVzdC1vZi1iZXN0Lm5hcm9kLnJ1
------=_NextPart_000_0030_01CA4C0C.869DFDA0--
Нажимаем на файл Name.eml и в открывшемся окне письма читаем раскодированное сообщение:
best-of-best.narod.ru
Кодирование файла в Base64 подручными средствами С помощью 64 символов, используемых в Base64 можно записать любой файл картинку, музыку, архив и так далее. Для этого:
Откройте Outlook Expres
Сообщение > Создать
В открывшемся окне для создания письма нажать кнопку "Влож..." с рисунком скрепки
Находим обзором файл, который хотим превратить в Base64 (Например файл картинки Kartinka.gif)
Файл > Сохранить как > Name.eml
Откройте созданный файл Name.eml блокнотом.
После строки filename="Kartinka.gif" будет наш текст, переведённый в Base64
Декодирование файла подручными средствами
Создайте файл Name.eml из маленькой картинки, способом, описанным выше.
Откройте созданный файл Name.eml блокнотом.
После строки filename="Kartinka.gif" будет текст, в виде Base64 вставьте в место него свой текст файла в виде Base64 например такой:
Зная, какой это файл (в данном случае это файл миди) меняем строчку
filename="Kartinka.gif" на строчку с нужным расширением
filename="Muz.mid"
Нажимаем на файл Name.eml и в открывшемся окне письма в строчке "Присоединить" видим наш файл
Щелкнув по нему можно его послушать
Чтобы сохранить полученный файл делаем так: Файл > Сохранить вложения
Декодировщики
Перевести текст в Base64 или Base64 в текст можно с помощью специальных программ, например base64.exe или с помощью приведённого ниже поля