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

Содержание:
  1. Метод btoa
  2. Метод atob
  3. Комментарии

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

Метод btoa

Метод 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

Метод 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);

Комментарии: 2

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