JavaScript - Методы btoa() и atob()

На этом уроке мы познакомимся с методами объекта window, которые предназначены для кодирования и декодирования строки на основе схемы base-64.

Метод btoa() предназначен для кодирования строки, указанной в качестве параметра в ACSII строку base-64, которая будет представлена с помощью 64 символов: "A-Z", "a-z", "0-9", "+", "/" и "=". Кодирование Base64 может используется для визуального скрытия данных от пользователя, для передачи информации и др. Принцип работы метода заключается в том, что он сначала преобразуют строку в последовательность бит, которые затем на основе схемы base-64 преобразуются в закодированную строку.

Кодирование строки с помощью метода JavaScript btoa()

Синтаксис метода:

window.btoa(Параметр_1);

Метод btoa() содержит один обязательный параметр - это строка которую нужно закодировать.

Например, закодировать строку в base-64:

var txt = "I Love JavaScript!";
var result = "Исходная строка: " + txt;
result += "<br />";
var encode = window.btoa(txt);
var result = "Закодированная строка: " + encode;
console.log(result);

Примечание: Если в качестве параметра метода window.btoa() будет использоваться строка Unicode, то может произойти исключение, из-за того что данная строка может содержать символы вне диапазона.

Чтобы этого не допустить, можно использовать следующие функции:

//кодирование строки Unicode в base-64
function utf8_to_b64(str) {
  return window.btoa(unescape(encodeURIComponenet(str)));
}
//декодирование строки из base-64 в Unicode
function b64_to_utf8(str) {
  return decodeURIComponent(escape(window.atob(str)));
}
Метод atob() декодирует строку, закодированную с помощью метода btoa(), т.е. он возвращает исходную строку.

Синтаксис метода:

window.atob(Параметр_1);

Метод atob() содержит один обязательный параметр - это строка которую нужно декодировать.

Например, декодировать строку, закодированную с помощью метода btoa():

var txt = "I Love JavaScript!";
var result = "Исходная строка: " + txt;
var result = "<br />";
var encode = window.btoa(txt);
result += "Закодированная строка: " + encode;
result += "<br />";
var decode = window.atob(encode);
result +="Декодированная строка: " + decode;
console.log(result);


   JavaScript и jQuery 0    4011 0

Комментарии (2)

  1. aa # 0
    Эти методы поддерживают все браузеры?
    1. Александр Мальцев # 0
      Все браузеры, кроме Internet Explorer 6, 7, 8 и 9.

    Вы должны авторизоваться, чтобы оставлять комментарии.