
EncodingĮncoding is the process of modifying the representation of data, so it can be more efficiently transmitted or consumed by a different system than the one that created it.

Photo taken at Östermalmstorg metro station. In this post, I’ll explain the key differences and provide you with hands-on Java code examples that illustrate how to use encoding, encryption, hashing, and obfuscation in practice. I believe that a good software developer today should know not only how they work but also how to use them as tools in practical applications. Unfortunately, these concepts are often mistakenly confused or taken as similar (which is even worse).

The concepts of encoding, encryption, hashing, and obfuscation are at the core of many critical software technologies.įor example, encryption and hashing are the backbones of the blockchain technology that fuels cryptocurrencies, whereas encoding and obfuscation unify and secure the web, respectively.
