base64 Encoding

Consider this problem.

Imagine you have some binary data but you need to send it over a network which only allows 7 bits of information. i.e. the data needs to be encoded in the range 0-127. But your source data is in the range of 8 bits - i.e. 0-255.

Is it possible to derive an algorithm which can re-encode the data into this range so that you can send it over the network? Then the receiver can use another algorithm to de-encode the data when it received.

This was the problem faced in the early days of electronic mail (email) which was sent over a 7 bit transport.

There are many ways of solving this problem. One of them is called base64 encoding. For now I will just refer you to wikipedia to learn more about how this encoding works.

base64 is used for many applications including HTTP basic authentication.

https://en.wikipedia.org/wiki/Base64