Encoding:
Encoding is used to transform data into another format so that it can be consumed by a different type of system or application. The encoding uses the algorithm for the encoding and decoding, it doesn't require a key and the encoding algorithm is publicly available.
We convert the data into binary so that, it can be consumed by a different system.
Example: ASCII, Unicode, URL encoding, Base64, etc.
Encryption:
Encryption is used to transform data to keep it secret. Encryption is used for confidentiality. In encryption, we use the private or public key depending on the encryption type (Symmetric Encryption or Asymmetric Encryption). So the goal of encryption is to ensure that the data can not be consumed by anyone other than the intended recipients.
Examples: aes, blowfish, rsa
Hashing:
Hashing is used for ensuring the integrity of data. Hashing takes an arbitrary input and produces a fixed length output. Hashing is an irreversible process, you can't directly decrypt the hash, but you can brute force it by creating the hash with the same hashing algorithm of a wordlist and then compare both the hashes. If the hashes match, then you get the clear text word.
Examples: sha-256, md5 (now obsolete), etc.
Obfuscation:
The purpose of obfuscation is to make something harder to understand. It is mostly used in the source code so that it can be harder for an attacker to understand the code or copy the code by reverse engineering. Obfuscation is an encoding technique, but the difference is that the encoding algorithm is not publicly available.
Examples: javascript obfuscator, proguard
Comments
Post a Comment