How to Encode / Decode a File

What is encoding / decoding ?

Encoding refers to the process of translating a file into an ASCII based string.
Decoding refers to the process of decoding the ASCII based string.

In order to perform this decoding/encoding process Base64 is typically used. Base64 is a program that  converts each 6 bits and then converts this to an ASCII based character out of a 64 ASCII character set. (this includes the characters of azAZ09+/.

Why would I want to do this ?

This is useful for situations were you need to transfer binary files across systems that have no network connectivity. Other applications were this is used is with SMTP which being a completely ASCII based protocol uses encoding to send any binary or not ASCII based data to the recipient.


Below we will be encoding and decoding a floppy disc image.

1. On the first machine we will be encoding the file into an ASCII based string.
          Note : we use the file command to confirm the file type. 

[root@host1 tmp]# file vmscsi-
vmscsi- DOS floppy 1440k, x86 hard disk boot sector
[root@host1 tmp]# base64 vmscsi- > vmscsi-
[root@host1 tmp]# head -n3 vmscsi-
[root@host1 tmp]# file vmscsi-
vmscsi- ASCII text

2. Once we have copy and pasted the ASCII text to the other machine (into the file vmscsi- we decode the file back into its original floppy image format.

[root@host2 tmp]# cat vmscsi- | base64 -di > vmscsi-
[root@host2 tmp]# file  vmscsi-
vmscsi- DOS floppy 1440k, x86 hard disk boot sector
Rick Donato

Want to become a Linux expert?

Here is our hand-picked selection of the best courses you can find online:
Linux Mastery course
Linux Administration Bootcamp
and our recommended certification practice exams:
AlphaPrep Practice Tests - Free Trial