Base64: Python Encryption Methods

Creating the Base64 Encoder with Python

In this guide I will explain what the Base64 is and what its used for. Then I will show you how to create your own Base64 program with Python.

What is Base64?

Base64 is a binary-to-text encoding scheme that is widely used for encoding binary data, such as images, audio, and binary files, into a text format. It is named “Base64” because it uses a base of 64 different characters to represent binary data. Base64 is a common method for transferring binary data over text-based protocols, such as email or XML-based web services, where binary data may not be easily transmitted.

Here’s an in-depth explanation of how Base64 encoding works:

Character Set:

Base64 uses a set of 64 different characters to represent binary data. These characters include A-Z, a-z, 0-9, and two additional characters that vary depending on the implementation. The two additional characters are often “+”, and “/”, but in some cases, they may be different, especially in URL-safe Base64, where “+” and “/” are replaced by “-” and “_” to avoid conflicts with web URLs.

Conversion to Binary:

Base64 encoding works by first converting the binary data into a series of 8-bit (1-byte) groups. If the last group has fewer than 8 bits, it is padded with zeros to make it a full 8 bits.

Dividing into 6-Bit Chunks:

Each 8-bit group is then divided into four 6-bit chunks. These 6-bit chunks can represent values from 0 to 63 (2^6), allowing them to map to the 64-character set.

Encoding with Base64 Characters:

Each 6-bit chunk is then converted into an equivalent character from the Base64 character set. For example, a 6-bit value of 10 would correspond to the character “K” in Base64. These characters are concatenated together to form the Base64-encoded string.


If the original binary data is not evenly divisible by 3 (as each 6-bit chunk represents 3/4 of a byte), padding characters, usually “=”, are added to the end of the Base64 string to ensure the length is a multiple of 4.


To decode a Base64-encoded string back into binary data, the process is reversed. The Base64 characters are converted back into their 6-bit representations, which are then combined to form the original binary data.

Here’s an example of Base64 encoding:

  • Original binary data: “Hello, World!”

  • Base64-encoded string: “SGVsbG8sIFdvcmxkIQ==”

  • Base64-encoded string: “SGVsbG8sIFdvcmxkIQ==”

  • Decoded binary data: “Hello, World!”

Base64 is a practical and widely used encoding method for a variety of purposes, including:

  • Email attachments: Images and other binary files can be encoded in Base64 to send them via email, as email protocols typically handle only text data.

  • Data transmission: Binary data can be encoded in Base64 for transmission over text-based communication channels, such as HTTP and XML.

  • Storing binary data in text files: Base64 encoding can be used to include binary data in text files (e.g., configuration files) without risking data corruption.

  • Web development: Base64-encoded images and resources are often used in web development, allowing them to be embedded directly in HTML, CSS, and JavaScript files.

Creating a Base64 with Python

With the help of the base64 Python library, this is a very basic script. Input the message you wish to encrypt into the string variable and then run the script.

import base64
string="Encode This"
converted = bytes(string, 'ascii')
encoded_data = base64.b64encode(converted)
print("Encoded text with base64 is")

You can decode the encrypted message using the following script:

import base64
decoded_data = base64.b64decode("RW5jb2RlIFRoaXM=")
print("decoded text is ")

Run the script and your message will be printed to the terminal or console.

Using Linux

Just to show you how easy it is to crack base64, open a Linux terminal and enter the following command:

echo 'Hello world' | base64

And you can decode this encrypted message just as easily with the following command:

echo 'SGVsbG8gd29ybGQK' | base64 --decode


While Base64 encoding is useful for these purposes, it is important to note that it does not provide encryption or security; it merely transforms binary data into a text format. Therefore, sensitive data should not be considered secure when encoded with Base64.

Find more of our Python guides here: Python Guides


Big Book of Small Python Programs: 81 Easy Practice Programs:

Luke Barber

Hello, fellow tech enthusiasts! I'm Luke, a passionate learner and explorer in the vast realms of technology. Welcome to my digital space where I share the insights and adventures gained from my journey into the fascinating worlds of Arduino, Python, Linux, Ethical Hacking, and beyond. Armed with qualifications including CompTIA A+, Sec+, Cisco CCNA, Unix/Linux and Bash Shell Scripting, JavaScript Application Programming, Python Programming and Ethical Hacking, I thrive in the ever-evolving landscape of coding, computers, and networks. As a tech enthusiast, I'm on a mission to simplify the complexities of technology through my blogs, offering a glimpse into the marvels of Arduino, Python, Linux, and Ethical Hacking techniques. Whether you're a fellow coder or a curious mind, I invite you to join me on this journey of continuous learning and discovery.

Leave a Reply

Your email address will not be published. Required fields are marked *

Verified by MonsterInsights