admin / 23.11.2017

base64 Декодер (дешифратор) / Энкодер (шифратор) онлайн

JavaScript base64 encode decode

Javascript Course

Base64-encoded data takes about 33% more space than the original data, but it is useful when you want to transfer compact and encrypted data from an aplication to another (for example from cliend side /browser to a script on server and vice versa).
In this page it is presented a JavaScript object that can be used to encode / decode data with MIME base64 . This object is fully compatible with UTF-8 encoding.
— Source code of Base64 object, from http://www.webtoolkit.info/javascript-base64.html. /** * Base64 encode / decode * http://www.webtoolkit.info/ **/ var Base64 = { // private property _keyStr : "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=", // public method for encoding encode : function (input) { var output = ""; var chr1, chr2, chr3, enc1, enc2, enc3, enc4; var i = 0; input = Base64._utf8_encode(input); while (i < input.length) { chr1 = input.charCodeAt(i++); chr2 = input.charCodeAt(i++); chr3 = input.charCodeAt(i++); enc1 = chr1 >> 2; enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isNaN(chr2)) { enc3 = enc4 = 64; } else if (isNaN(chr3)) { enc4 = 64; } output = output + this._keyStr.charAt(enc1) + this._keyStr.charAt(enc2) + this._keyStr.charAt(enc3) + this._keyStr.charAt(enc4); } return output; }, // public method for decoding decode : function (input) { var output = ""; var chr1, chr2, chr3; var enc1, enc2, enc3, enc4; var i = 0; input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); while (i < input.length) { enc1 = this._keyStr.indexOf(input.charAt(i++)); enc2 = this._keyStr.indexOf(input.charAt(i++)); enc3 = this._keyStr.indexOf(input.charAt(i++)); enc4 = this._keyStr.indexOf(input.charAt(i++)); chr1 = (enc1 << 2) | (enc2 >> 4); chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); chr3 = ((enc3 & 3) << 6) | enc4; output = output + String.fromCharCode(chr1); if (enc3 != 64) { output = output + String.fromCharCode(chr2); } if (enc4 != 64) { output = output + String.fromCharCode(chr3); } } output = Base64._utf8_decode(output); return output; }, // private method for UTF-8 encoding _utf8_encode : function (string) { string = string.replace(/\r\n/g,"\n"); var utftext = ""; for (var n = 0; n < string.length; n++) { var c = string.charCodeAt(n); if (c < 128) { utftext += String.fromCharCode(c); } else if((c > 127) && (c < 2048)) { utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); } } return utftext; }, // private method for UTF-8 decoding _utf8_decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0; while ( i < utftext.length ) { c = utftext.charCodeAt(i); if (c < 128) { string += String.fromCharCode(c); i++; } else if((c > 191) && (c < 224)) { c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) << 6) | (c2 & 63)); i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63)); i += 3; } } return string; } } — Usage:
1. Copy the Base64 object into your JavaScript script.
2. To encode a string, calls the encode() method:   Base64.encode(‘string’); .
3. To decode a base64-encoded string, calls the decode() method:   Base64.decode(‘base64-string’); .

— Example. The text added into a textarea will be encoded with base64, and added into an input form field. The base64-encoded string added in that input field can be decoded and displayed into an Alert window. <form action="#" method="post"> Enter a text:<br/> <textarea name="txtstr" id="txtstr" cols="26" rows="5"></textarea> <button id="btnencode64">Encode</button><br/><br/> Base64 encoded data:<br/> <input type="text" name="str64" id="str64" size="34" /> <button id="btndecode64">Decode</button> </form> <script type="text/javascript"> // Here add the code of Base64 object // register onclick events for encode button document.getElementById(‘btnencode64’).onclick = function() { var txt_string = document.getElementById(‘txtstr’).value; // gets data from textarea // encode data and adds it in #str64 element document.getElementById(‘str64’).value = Base64.encode(txt_string); return false; } // register onclick events for decode button document.getElementById(‘btndecode64’).onclick = function() { // decode data from input text field and display it into an alert window var str64 = Base64.decode(document.getElementById(‘str64’).value); alert(str64); return false; } </script> Demo:

JavaScript base64 encode decode

Last accessed pages

  1. Register and show online users and visitors(22258)
  2. PhpSpreadsheet — Read, Write Excel and LibreOffice Calc files(7804)
  3. Send Email with Nodemailer(486)
  4. Zodiac Signs JavaScript code(4185)
  5. Area and Perimeter Calculator for 2D shapes(6629)

Popular pages this month

  1. Read Excel file data in PHP — PhpExcelReader(337)
  2. Register and show online users and visitors(309)
  3. PhpSpreadsheet — Read, Write Excel and LibreOffice Calc files(288)
  4. Insert, Select and Update NULL value in MySQL(235)
  5. Get Attribute (ID, Class, Name, Title, Src) with jQuery(209)

— WebMaster, WebDesigner : MarPlo —

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which HTML5 tag defines marked text? (can be used to highlight parts of text)

<mark> <embed> <span><p>Free corses: <mark>coursesweb.net</mark> for Web Development.</p>

Which CSS pseudo-class adds a style to an element when the mouse is over it?

:focus :hover :activea:hover { font-weight: bold; color: #00da01; }

Click on the function which returns a string value that represents the number rounded to the x digits after the decimal point.

toPrecision(x) toFixed(x) floor(x)var num = 12.34567; num = num.toFixed(2); alert(num); // 12.35

Indicate the PHP function which reads an entire file into an array.

[) file() readfile()$arr = file(«a_file.txt», FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); var_export($arr);

Base64 Decode / Encode


Base64 – онлайн декодировщик

Что такое Base64? Base64 представляет собой особый алгоритм, который позволяет привести любую информацию в 64-разрядный вид. Как мы знаем, обычно единица информации представлена в бите. Восемь бит формируют байт. Но, Base64 предполагает использование не 8 бит, а 6. Как известно в одном байте можно поместить 256 цифр, начиная с 0 и заканчивая 255. В случае с шестибитным байтом умещается только 64 символа, от 0 до 63. Казалось бы, это не дает ничего полезного, а только увеличивает размер представленной информации. На самом же деле, этот алгоритм очень важен и полезен. Он позволяет присвоить каждой цифре из такого байта печатный символ.

How to Encode and Decode Strings with Base64 in JavaScript

Нужно всего лишь 64 символа, это не так уж и много, поэтому для этого используется ASCII (стандартная, американская кодировка). Это значит, что Base64 имеет свой собственный «алфавит», который и обеспечивается названной кодировкой.

Сам алфавит можно разделить на несколько групп:

— Буквы английского алфавита в верхнем регистре – ABCDEFGHIJKLMNOPQRSTUVWXYZ; — Эти же буквы, но в нижнем регистре – abcdefghijklmnopqrstuvwxyz; — Цифры от 0 до 9 – 0123456789; — Дополнительные символы – «+» и «/»; — Целиком это будет выглядеть так – «ABCDEFGHIJKLMNOPQRSTUVWXYZ — abcdefghijklmnopqrstuvwxyz0123456789+/».

Поскольку здесь и есть 64 символа, можно — сделать вывод, что «А» это «0», а «/» это «63». Далее берется три обыкновенных восьмибитных байт, то есть 24 бита, и разбиваются на 4 группы по 6 бит. Каждая из таких четырех групп и будет являться шестибитным байтом. Хотя по сути, это все тот же стандартный байт из восьми бит, но используются в нем только младшие шесть бит, а два старших просто отбрасываются.

Для чего это нужно?

Используется такой алгоритм в разных сферах, особенно в веб-разработке. Так вышло, что для передачи данных, как правило, используется не бинарный код, а текст (email, xml, url схемы, html и прочее). Но, что же делать если нужно передать именно бинарные данные? Все просто, с помощью Base64 Encode их в текст.

Для веб-мастеров данный алгоритм пригодится в таких сферах:

— Для включения изображения (или других данных) в email; — Для сохранения изображений в базах данных; — При передаче картинок и прочих данных в XML; — Data:URL схемы для картинок; — Можно ли использовать Base64 для шифрования паролей? — Base64 легко можно обратно расшифровать. Поэтому для шифрования паролей данный метод — использовать нельзя. — Base64 в бесплатных шаблонах
Очень часто авторы бесплатных шаблонов для популярных CMS вставляют в код исходящие ссылки на нужные им адреса (как правило для рекламы себя и своих сайтов). А для того, чтобы пользователь ничего не заподозрил такие ссылки шифруются с помощью Base64. Воспользовавшись нашим base64 декодером вы сможете расшифровать Base64 и найти такие ссылки.

Как пользоваться декодировщиком Base64?

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

Decode from Base64 format

Simply use the form below

Live mode OFF

Decodes while you type or paste (strict format).Note that decoding of binary data (like images, documents, etc.) does not work in live mode.

Details of the encoding

Base64

Base64 is a generic term for a number of similar encoding schemes that encode binary data by treating it numerically and translating it into a base 64 representation. The Base64 term originates from a specific MIME content transfer encoding.

Base64 encoding schemes are commonly used when there is a need to encode binary data that needs be stored and transferred over media that are designed to deal with textual data. This is to ensure that the data remains intact without modification during transport. Base64 is used commonly in a number of applications including email via MIME, and storing complex data in XML.

Design

The particular choice of characters to make up the 64 characters required for base varies between implementations. The general rule is to choose a set of 64 characters that is both part of a subset common to most encodings, and also printable. This combination leaves the data unlikely to be modified in transit through systems, such as email, which were traditionally not 8-bit clean. For example, MIME’s Base64 implementation uses A-Z, a-z, and 0-9 for the first 62 values. Other variations, usually derived from Base64, share this property but differ in the symbols chosen for the last two values; an example is UTF-7.

Example

A quote snippet from Thomas Hobbes’s Leviathan:

«Man is distinguished, not only by his reason, but …«

represented as an ASCII byte sequence is encoded in MIME’s Base64 scheme as follows:

TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCAuLi4=

In the above quote the encoded value of Man is TWFu.

Как вы можете кодировать строку Base64 в JavaScript?

Encoded in ASCII, M, a, n are stored as the bytes 77, 97, 110, which are 01001101, 01100001, 01101110 in base 2. These three bytes are joined together in a 24 bit buffer producing 010011010110000101101110. Packs of 6 bits (6 bits have a maximum of 64 different binary values) are converted into 4 numbers (24 = 4 * 6 bits) which are then converted to their corresponding values in Base64.

Text content M a n
ASCII 77 97 110
Bit pattern 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 0 1 1 1 0
Index 19 22 5 46
Base64-encoded T W F u

As this example illustrates, Base64 encoding converts 3 uncoded bytes (in this case, ASCII characters) into 4 encoded ASCII characters.

At Wikipedia you can read more about the encoding.

Описание:

Base64 — это группа аналогичных схем кодирования двоичного текста, которые представляют двоичные данные в формате строки ASCII путем перевода их в представление radix-64. Термин Base64 происходит от определенной кодировки передачи содержимого MIME.

Каждая цифра base64 представляет ровно 6 бит данных. Таким образом, три 8-битных байта (т. е. всего 24 бита) могут быть представлены четырьмя 6-битными цифрами base64.

Определенный набор из 64 символов, выбранных для представления 64 мест-значений для базы, варьируется между реализациями. Общая стратегия состоит в том, чтобы выбрать 64 символа, которые являются членами подмножества, общего для большинства кодировок, а также для печати. Эта комбинация оставляет данные, которые вряд ли будут изменены при передаче через информационные системы, такие как электронная почта, которые традиционно не были 8-битными чистыми. Например, реализация Base64 MIME использует A-Z, A-z и 0-9 для первых 62 значений.

JavaScript base64 encode decode

Другие варианты разделяют это свойство, но отличаются символами, выбранными для последних двух значений; примером является UTF-7.

Самые ранние экземпляры этого типа кодирования были созданы для коммутируемой связи между системами, работающими под управлением той же ОС — например, uuencode для UNIX, BinHex для TRS-80 (позже адаптированный для Macintosh) — и поэтому могли бы сделать больше предположений о том, какие символы были безопасны для использования. Например, uuencode использует прописные буквы, цифры и много знаков препинания, но не строчные.

Ресурсы:

Кодирование Base64 дает возможность для отправки всех типов данных через электронную почту в Интернете.

Если Интернет является информационной магистралью, то в случае с электронной почтой имеются ограничения. Через нее могут передаваться только небольшие данные.

Транспортная система электронной почты предназначена только для обычного ASCII текста. Попытка отправить текст на других языках или произвольные файлы — это как получить грузовик через овраг.

При попытке отправить текст на других языках или отправить случайный файл — это как попытаться проехать на большом грузовике через маленькое ущелье.

Так как же проехать на грузовике через это маленькое ущелье?

Мы должны разобрать наш грузовик на части и переправить эти части с одного конца на другой.

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

Одним из методов кодирования данных в виде обычного текста ASCII является Base64.

Это один из способов, используемых стандартом MIME для отправки данных, отличных от обычного текста.

Base64 в помощь

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

Первым шагом является преобразование трех байтов в четыре числа из шести бит. Каждый символ в стандарте ASCII состоит из семи битов. Base64 использует только 6 бит (что соответствует 2 ^ 6 = 64 символам), чтобы гарантировать, что закодированные данные могут быть пригодны для печати и читаемы «по-человечески».

Ни один из специальных символов, доступных в таблице ASCII, не используется. 64 символа (отсюда и название Base64) — это 10 цифр, 26 символов в нижнем регистре, 26 символов в верхнем регистре, а также символы «+» и «/».

Например, три байта равны 155, 162 и 233, соответствующий (и пугающий) поток битов равен 100110111010001011101001, который, в свою очередь, соответствует 6-битовым значениям 38, 58, 11 и 41.

Эти цифры преобразуются в символы из таблицы ASCII на втором шаге с использованием таблицы «Base64 encoding».

6-битные значения нашего примера преобразуются в последовательность ASCII «m6Lp».

  • 155 -> 10011011
  • 162 -> 10100010
  • 233 -> 11101001
  • 100110 -> 38
  • 111010 -> 58
  • 001011 -> 11
  • 101001 -> 41
  • 38 -> m
  • 58 -> 6
  • 11 -> L
  • 41 -> p

Этот двухэтапный процесс применяется ко всей последовательности байтов, которые закодированы. Чтобы гарантировать, что закодированные данные могут быть правильно напечатаны и не превышают ограничения почтового сервера, символы новой строки добавляются так, чтобы общая длина строк не превышала 76 символов. Символы новой строки кодируются, как и все остальные данные.

Решение

В процессе кодирования мы можем столкнуться с проблемой. Если размер исходных данных в байтах кратен трем, все работает нормально.

JavaScript аналог функций php base64_decode и base64_encode

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

Решение состоит в том, чтобы добавить достаточно байтов со значением «0» для создания 3-байтовой группы. Два таких значения добавляются, если у нас есть один дополнительный байт данных, один добавляется для двух дополнительных байтов.

Конечно, эти искусственные завершающие «0» не могут быть закодированы, используя таблицу кодирования ниже. Они должны быть представлены 65-м символом.

Отступом Base64 является «=». Естественно, он может появляться только в конце закодированных данных.

Value Char   Value Char   Value Char   Value Char
0 A   16 Q   32 g   48 w
1 B   17 R   33 h   49 x
2 C   18 S   34 i   50 y
3 D   19 T   35 j   51 z
4 E   20 U   36 k   52 0
5 F   21 V   37 l   53 1
6 G   22 W   38 m   54 2
7 H   23 X   39 n   55 3
8 I   24 Y   40 o   56 4
9 J   25 Z   41 p   57 5
10 K   26 a   42 q   58 6
11 L   27 b   43 r   59 7
12 M   28 c   44 s   60 8
13 N   29 d   45 t   61 9
14 O   30 e   46 u   62 +
15 P   31 f   47 v   63 /

Base64КодированиеЭлектронная почтаинтернетФайлКомпьютерКодировкаBase64Электронная почтаинтернет

FILED UNDER : IT

Submit a Comment

Must be required * marked fields.

:*
:*