How to Base64 Encode/Decode a Value in Node.js

Base64 is a binary-to-text encoding scheme used to transport data. The encoding is necessary when the transfer medium is not able to handle binary data. This binary data is then translated to a text representation (base64) and transferred as text.

This tutorial shows you how to base64-encode and -decode a string value in Node.js

Node.js Series Overview

Base64 Encode a Value in Node.js

Node.js supports data encoding via the global Buffer class. You can create a buffer instance using the Buffer.from method. Pass the value you want to base64-encode as the first argument and the current encoding as the second argument.

Here’s a code snippet translating a string in UTF8 encoding to base64:

const encoded = Buffer.from('username:password', 'utf8').toString('base64')  
// 'dXNlcm5hbWU6cGFzc3dvcmQ='

Base64 Decode a Value in Node.js

Decoding a base64-encoded string is also possible using the global Buffer class. Again, create a buffer instance using the Buffer.from method. Pass it your base64-encoded string as the first argument and the base64 encoding as the second argument. Make sure to pass the correct encoding to initialize the buffer correctly. You can then translate the encoding to a UTF8 representation.

Here’s a code snippet translating a base64-encoded string to UTF8:

// using the base64 encoded string from above
const plain = Buffer.from('dXNlcm5hbWU6cGFzc3dvcmQ=', 'base64').toString('utf8')  
// 'username:password'

That‘s it!

Explore the Library

Find interesting tutorials and solutions for your problems.