Encryption, hashing, encoding and obfuscation

The following terms have different meaning and are often confused. Cryptography is a very complex and large field, and it is good to know more about it, but for professional reinventing of cryptographic algorithms, it's best left to professionals only.

Encryption changes data in such a way that it can be converted back to its original state when the correct encryption key is known.

Hashing changes data in a way that it can NOT be converted back to ts original state. Hashing is commonly used for verifying passwords (in such cases, an application doesn't need to know the actual password to operate normally).

Encoding has nothing to do with cryptographic algorithms directly. Encoding is transforming data so that it can be properly read by different systems and applications.

Obfuscation is changing data so that it becomes more difficult to read or to be reverse engineered.

See also

Found a typo? Something wrong with this content?

Just fork and edit it.

Content of this work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license. Code snippets in examples are published under the CC0 1.0 Universal (CC0 1.0). Thanks to all contributors.