Base-64 is an encoding algorithm that transforms any characters into an alphabet that consists of letters, digits, pluses, and slashes.
You can convert Chinese characters, emojis, and even images into a “readable” string, which can be saved or transferred anywhere.
Imagine that Alice wants to send an image to Bob during a phone call.
When Bob wants to find a perfect version of the image, he must do more than describe the look. He needs to have a sample of it.
Alice converts the image to the binary system and dictates the binary digits (bits) to Bob. He will be able to convert them back to the original image.
The second problem is that the tariff for phone calls is too expensive and dictates each byte as eight binary digits will last too long.
Alice and Bob agree to use a more efficient data transfer method by reducing costs. They decide to replace every “six-digit” number with one “letter.”
To realize the difference, check out a 5×5 image converted to binary digits:
010001 110100 100101 000110 001110 000011 011101 100001 000000 010000 000000 000001 000000 001111 000000 000000 000000 001111 111100 000000 000000 000000 000000 000000 000000 000010 110000 000000 000000 000000 000000 000000 000000 010000 000000 000001 000000 000000 000000 000010 000000 100100 010000 000001 000000 000011 001011
Although the same image converted to Base64 looks like this:
Even if you removed spaces and padding zeros from binary digits, the Base-64 string would still be shorter.
I grouped bits only to show that each group meets each character of the Base-64 string.
The story about Alice and Bob is just a thought-out example of telling you what kind of problem the Base-64 algorithm solves.
When transmitting binary data over the network or storing the data in databases, the binary data must be converted into text somehow.
Why Is Base-64 Encoding Used?
Binary data is usually in raw form when sent to text-based systems, which causes issues such as corruption in the media stream. To solve this problem, you can use Base64 encoding.
Email interprets binary data as a wide range of characters, so it often becomes corrupted or lost during the transmission process.
To avoid these transmission problems, one way to transmit binary data to a computer over a serial port is to encode it as Base-64 and send it as plain ASCII text.
This is an important technique used in the MIME standard for sending data other than plain text.
Base64 started way back when engineers argued about how many bits should go into a byte in those days.
Before, this was used in eight-bit, seven-bit, six-bit, and even three-bit bytes.
While the 8-bit encoding was still in the works, many systems supported it. In fact, many still do not keep it today.
This means the new and the old system were incompatible.
A mail server could discard the eighth bit when sending an email.
In addition, there were other problems with the mail servers — they could only send text, but not binary data (such as images, videos, archives.
Clever minds develop an algorithm to solve these problems.
After base64 had become the de-facto standard, new approaches were developed. Other ways of representing binary data (e.g.
1. The description of the algorithm was first published in a paper in
2. It was documented as a PEM protocol in an RFC in
Since then, the algorithm has evolved, giving rise to new standards that are actively used throughout IT.
Initially, the algorithm was named “printable encoding,” and only after a couple of years, in June 1992, RFC 1341 defined it as “Base-64.”
This algorithm uses 64 primary characters, so it’s only natural to give it a name. There already exist several algorithms called Base85.
This means that you won’t have any problem guessing the names of the algorithms such as Base16, Base32, Base36, Base58, Base91, or Base122.
Read more: What’s the Difference Between Blogger vs WordPress?
During encoding, the Base-64 algorithm converts every three bytes into four bytes and, if necessary, adds padding characters to ensure that the result is a multiple of four.
If we consider that all integers are stored in base 10, then the size of the result will always be 33 percent (more precisely, 4⁄3. More significant than the original data.
The formula for calculating the length of the result string without padding is as follows: n * 4 / 3, where n is the length of the original data.
Base 64 Encoding binary data as base64 can be used to embed binary data in text-based data formats. For example, images can be encoded to use fewer bytes when transferred over HTTP.
Data is usually encoded when the content to be transferred, stored, or output is not supported or damaged during the transfer, storage, or production.
One of the applications of the algorithm is:
- Attach files when sending emails
- Embed images in HTML or CSS via data URI
- Preserve raw bytes of cryptographic functions
- Output binary data as XML or JSON in API responses
- Save binary files to the database when BLOB is unavailable
- Hide secrets from prying eyes (really a very bad idea)
Read more:Best Used Bluehost Web Hosting Review
Base64 is not an encryption algorithm, and it shouldn’t be used to “hash” passwords or “encrypt” sensitive data because it’s a reversible algorithm, and the encoded data can be easily decoded.
Base64 is only used to encode the result of a cryptographic function.
This is one of the more interesting security topics. For those who don’t know, Base64 is a binary encoding system that looks like text. In a nutshell, Base64 encodes and decodes data.
Unfortunately, even they can understand the meaning of the encoded message simply by using an online translator, which instantly returns the original message.
How do I base-64 encode?
To base-64 encode a string, you take the string and split it into 64 characters. You then take the first character of the string and multiply it by 16, and add that to the last character of the string. This gives you the value for the first byte of the encoded string. You do this again for every byte in the string.
What is base64 encoding?
Base64 encoding is a data encoding format used to represent binary data in a text format. It works by taking an input string of bytes and representing each byte as a 64-character string.
What is the difference between base-64 and hexadecimal?
Hexadecimal is a base-16 numbering system, while base-64 is a base-2 numbering system. Hexadecimal uses 16 digits, while base-64 uses only 2 digits.
What are the ASCII values of the letters A, B, C, D, E, and F?
A=65, B=66, C=67, D=68, E=69, F=70