Quick Hits: Encoding, Encryption, and Hashing

The following is a quick description on Encoding, Encryption and Hashing. This post is to quickly help anyone understand these concepts and the differences with each.

Encoding is the act of transforming data from one form into another. This type of transformation does not require a key, as it should be able to decoded by the same algorithm it was encoded with. Encoding information is not meant to keep information a secret, but rather ensure that it is sent and consumed by the intended system appropriately. For example, binary information sent over emails or characters on a website can be encoded.

Encryption is the act of transforming data so that only specific users can decode it. Examples of this include secret letters, special military instructions (used in WW2), or sending passwords through the internet. At a high level, two types of encryption that can be used are asymmetric and symmetric encryption.  Asymmetric Cryptography involves the use of both private and public keys. Just as the name implies, the public key is made available to the public and used to encrypt messages to a specific person. Vice versa, the private key is kept a secret by the owner of the key. Symmetric Cryptography involves the use of the same key to encrypt and decrypt a message or file.

Contrary to popular belief, hashing is actually different than encrypting. To better understand why this is the case, keep in mind that encryption involves encrypting and decrypting a message. In its most fundamental state, hashing “condenses a message into an irreversible fixed-length value” (Stretch, 2010). Algorithms such as MD5 or SHA-1 are used to encrypt the message one way. The main purpose of a hash is to verify that a message has been untouched. As well, it can be used to authenticate by involving an additional step of encrypting with a secret key. Thus, hashes are extremely useful in cryptography today. Algorithms such as MD5 or SHA-1 are used to encrypt the message one way. The main purpose of a hashing is to verify that a message has been untouched. As well, it can be used to authenticate by involving an additional step of encrypting with a secret key.

I hope you enjoyed the quick read!