Back to Blog
Base64

Полное руководство по кодированию Base64: Принципы, применение и практика

E
EfficTools Team
December 5, 202415 min read

Полное руководство по кодированию Base64: Принципы, применение и практика

Что такое кодирование Base64?

Base64 - это метод кодирования, который преобразует двоичные данные в строки ASCII. Он использует 64 печатных символа (A-Z, a-z, 0-9, +, /) для представления произвольных двоичных данных.

Зачем нужен Base64?

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

Распространенные случаи использования

  • Вложения электронной почты: Протокол MIME использует кодирование Base64 для передачи двоичных вложений
  • Data URL: Встраивание небольших изображений в HTML/CSS
  • JWT токены: JSON Web Token используют кодирование Base64URL
  • Передача через API: Передача двоичных данных в JSON
  • Принципы кодирования Base64

    Основной принцип кодирования Base64 заключается в разделении 3 байтов (24 бита) двоичных данных на 4 группы по 6 бит каждая, затем отображении каждой 6-битной группы на соответствующий символ в таблице символов Base64.

    Шаги кодирования

  • Преобразовать входные данные в двоичный формат
  • Сгруппировать каждые 3 байта вместе
  • Разделить каждую 24-битную группу на 4 группы по 6 бит
  • Отобразить каждую 6-битную группу на символ Base64
  • Если последняя группа имеет менее 3 байтов, дополнить символом =
  • Использование Base64 в JavaScript

    ``javascript

    // Кодирование

    const encoded = btoa('Hello, World!');

    console.log(encoded); // SGVsbG8sIFdvcmxkIQ==

    // Декодирование

    const decoded = atob('SGVsbG8sIFdvcmxkIQ==');

    console.log(decoded); // Hello, World!

    `

    Обработка символов Unicode

    Поскольку btoa может обрабатывать только символы Latin1, обработка Unicode требует предварительного кодирования UTF-8:

    `javascript

    // Кодировать Unicode

    const encodeUnicode = (str) => {

    return btoa(encodeURIComponent(str).replace(

    /%([0-9A-F]{2})/g,

    (_, p1) => String.fromCharCode(parseInt(p1, 16))

    ));

    };

    // Декодировать Unicode

    const decodeUnicode = (str) => {

    return decodeURIComponent(

    atob(str).split('').map(

    c => '%' + c.charCodeAt(0).toString(16).padStart(2, '0')

    ).join('')

    );

    };

    ``

    Использование EfficTools для кодирования/декодирования Base64

    Если вы не хотите писать код, вы можете напрямую использовать наш инструмент кодирования/декодирования Base64, который поддерживает:

    • Кодирование текста в Base64
    • Декодирование Base64 в текст
    • Идеальная поддержка символов Unicode
    • Кодирование файлов в Base64

    Резюме

    Base64 - это важный метод кодирования с широким применением в веб-разработке. Понимание его принципов и методов использования очень полезно для обработки различных сценариев передачи данных.

    Base64КодированиеУчебникJavaScript
    Share this article