Рубрики
Uncategorized

BASE64 объяснил

ВВЕДЕНИЕ BASE64 — это алгоритм бинарного в текстовый шифрование. Он преобразует ASCII в … Tagged с алгоритмами, JavaScript, DevOps.

Вступление

BASE64 — это алгоритм бинарного к текстовому шифрованию. Он преобразует ASCII в представление Base64.

Процесс конверсии

Мы знаем, что письмо UTF-8 состоит из 8 бит. Base64 преобразует предоставленную строку в двоичное представление, а затем удаляет последние две двоичные цифры из двоичного представления каждой буквы UTF-8 из предоставленной строки. После этого каждая буква представлена с 6 битами. Помните, что общее количество битов всей строки должно оставаться неизменным, например, если строка содержит 6 значений ASCII, соответствующие битам, Base64 преобразует бинарные значения в 8 групп из 6 битов. Затем 6-битные группы преобразуются в соответствующие целочисленные значения (0-63). После этого мы преобразуем целочисленные значения в их соответствующие значения ASCII, используя диаграмму преобразования Base64. Затем используется другая диаграмма для преобразования соответствующих значений ASCII в исходные значения ASCII. Кроме того, при использовании Base64 на изображениях нам нужно использовать буфер для преобразования строки Base64 в двоичное представление изображения.

string => binary => binary in the groups of 6 bits => base64 ascii string => original string

Где он используется

  • Он используется для хранения и передачи контента на носителях, который поддерживает только ASCII.
  • Он используется для обеспечения того, чтобы данные оставались нетронутыми без каких -либо изменений в передаче.
  • Он также используется при отправке электронных писем.
  • Он используется для кодирования двоичных данных, чтобы они могли быть включены в URL

Примеры

  • Предположим, вы хотите отправить изображение на среду, которая поддерживает только ASCII, вам придется конвертировать его в ASCII с помощью BASE64, а затем отправить его.

Закодированное увеличение размера

Когда вы шифруете строку, используя Base64, кодированная строка будет больше, чем фактическая строка. Это связано с тем, что символ Base64 представлен 6 битами, тогда как нормальный символ представлен 8 битами, что увеличивает количество букв в строке Base64, что увеличивает размер строки. Когда вы используете Base64 на строке, размер строки увеличивается, по крайней мере, увеличивается на 133%

Проблема Unicode

Строки DOM представляют собой 16-битные (UTF-16) строки, которые создают проблему для Base64, поскольку он поддерживает только 8-битные строки (UTF-8). Вы можете решить эту проблему, преобразив строку в UTF-8, и есть и другие методы, чтобы сделать то же самое. Код для преодоления этой проблемы путем преобразования строки в UTF-8 выглядит следующим образом:

function utf16_To_utf8(str) {
    let utf8 = unescape(encodeURIComponent(str));
    return utf8;
}
btoa(utf16_To_utf8("pog"));)

Демонстрация

Рабочая демонстрация алгоритма Base64 в реальном сценарии, в котором мы переносим изображение из источника в его назначение, используя Base64, потому что мы можем переносить данные ASCII только по среде передачи. Приведенная ниже демонстрация используется для преобразования .jpg Файл в .png файл.

const fs = require('fs');

const base64 = fs.readFileSync('./original.jpg', 'base64');
// convert the binary text in the image file to a base64 string

const buffer = Buffer.from(base64, 'base64');
// generate a base64 buffer of the base64 string, a buffer of the base64 string is required to convert the string back to graphics

fs.writeFileSync('new.jpg', buffer);
// write the buffer into a file

fs.writeFileSync('new.png', buffer);
// you can even convert a jpg into png using this technique

// the process
// image => binary => base64 string => buffer => image

Кредиты

  • [Алекс Лор] для исправления ошибки, а также для обмена полезной информацией, которая будет добавлена в блог.

Оригинал: «https://dev.to/hamiecod/base64-explained-1il4»