Open In App

How Base64 Encoding and Decoding is Done in Node.js ?

Last Updated : 08 Jan, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Base64 encoding and decoding are when you need to encode binary data into a text format that can be easily transmitted over text-based protocols like HTTP. Node.js provides built-in methods for Base64 encoding and decoding, which can be easily performed using the Buffer class.

Approach

To perform Base64 encoding and decoding in Node.js, use the Buffer class. Encode data with Buffer.from(data).toString(‘base64’), and decode with Buffer.from(base64String, ‘base64’).toString(). This approach works for both strings and binary data.

Encoding the original string to base64

The Buffer class in Node.js can be used to convert a string to a series of bytes. This can be done using Buffer.from() method that accepts the string to be converted and the current encoding of the string. This encoding can be specified as “utf8”. The converted bytes can then be returned as a base64 using the toString() method. This method accepts a parameter that specifies the encoding needed during conversion. In this case, “base64” is specified as the encoding to be used. Thus, this method converts any string to the base64 format.

Syntax:

// Create buffer object, specifying utf8 as encoding
let bufferObj = Buffer.from(originalString, "utf8");

// Encode the Buffer as a base64 string
let base64String = bufferObj.toString("base64");

Example: This example demonstrates how to convert a UTF-8 string into a Base64 encoded string using Node.js Buffer.

JavaScript
// The original utf8 string
let originalString = "GeeksforGeeks";

// Create buffer object, specifying utf8 as encoding
let bufferObj = Buffer.from(originalString, "utf8");

// Encode the Buffer as a base64 string
let base64String = bufferObj.toString("base64");

console.log("The encoded base64 string is:", base64String);

Output:

The encoded base64 string is: R2Vla3Nmb3JHZWVrcw==

Decoding base64 to original string

The Buffer can also be used to convert the base64 string back to utf8 encoding. The Buffer.from() method is again used to convert the base64 string back to bytes, however, this time specifying the current encoding as “base64”. The converted bytes can then be returned as the original utf8 string using the toString() method. In this case, “utf8” is specified as the encoding to be used. Thus, this method converts the base64 to its original utf9 format.

Syntax:

// Create a buffer from the string
let bufferObj = Buffer.from(base64string, "base64");

// Encode the Buffer as a utf8 string
let decodedString = bufferObj.toString("utf8");

Example: This example shows how to decode a Base64 encoded string back into its original UTF-8 string using Node.js Buffer.

JavaScript
// The base64 encoded input string
let base64string = "R2Vla3Nmb3JHZWVrcw==";

// Create a buffer from the string
let bufferObj = Buffer.from(base64string, "base64");

// Encode the Buffer as a utf8 string
let decodedString = bufferObj.toString("utf8");

console.log("The decoded string:", decodedString);

Output:

The decoded string: GeeksforGeeks

Conclusion

Base64 encoding and decoding in Node.js are straightforward with the Buffer class. This capability is particularly useful for handling binary data that needs to be transmitted over text-based protocols or stored in text formats. Whether you’re dealing with strings, images, or other binary files, Node.js makes it easy to encode and decode Base64 data efficiently.



Next Article

Similar Reads