Skip to content

Home

How to encode and decode strings with Base64 in JavaScript

Converting strings to and from Base64 is a simple operation that might come in handy every once in a while. Luckily, modern JavaScript provides some easy-to-use global helper functions for just this purpose.

Encode a string with Base64

The btoa() method creates a base-64 encoded string from a String object in which each character in the string is treated as a byte of binary data.

const stringToEncode = 'foobar';

const encodedString = btoa(stringToEncode); // 'Zm9vYmFy'

Decode a Base64 encoded string

Conversely, the atob() method decodes a string of data which has been encoded using base-64 encoding.

const stringToDecode = 'Zm9vYmFy';

const decodedString = atob(stringToDecode); // 'foobar'

Compatibility & older Node.js versions

Luckily, both btoa() and atob() are supported in all modern browsers and Node.js since version 16.0.0.

If, however, you need to support older Node.js versions, you will need to use the Buffer class to define your own btoa() and atob() functions.

const btoa = str => Buffer.from(str, 'binary').toString('base64');
const atob = str => Buffer.from(str, 'base64').toString('binary');

const stringToEncode = 'foobar';
const encodedString = btoa(stringToEncode); // 'Zm9vYmFy'

const stringToDecode = 'Zm9vYmFy';
const decodedString = atob(stringToDecode); // 'foobar'

More like this

Start typing a keyphrase to see matching snippets.