Alex Rivera | Logout

What is the difference between Obfuscation, Hashing, and Encryption?

Asked 2008-10-08T19:00:45.323
42

What is the difference between Obfuscation, Hashing, and Encryption?

Here is my understanding:

  • Hashing is a one-way algorithm; cannot be reversed
  • Obfuscation is similar to encryption but doesn't require any "secret" to understand (ROT13 is one example)
  • Encryption is reversible but a "secret" is required to do so
Edit
Report

2 Answers

2

This is how I've always looked at it.

  • Hashing is deriving a value from another, using a set algorithm. Depending on the algo used, this may be one way, may not be.

  • Obfuscating is making something harder to read by symbol replacement.

  • Encryption is like hashing, except the value is dependent on another value you provide the algorithm.

answered 2008-10-08T19:04:11.883
0

Obfuscation is merely making something harder to understand by intruducing techniques to confuse someone. Code obfuscators usually do this by renaming things to remove anything meaningful from variable or method names. It's not similar to encryption in that nothing has to be decrypted to be used.

Typically, the difference between hashing and encryption is that hashing generally just employs a formula to translate the data into another form where encryption uses a formula requiring key(s) to encrypt/decrypt. Examples would be base 64 encoding being a hash algorithm where md5 being an encryption algorithm. Anyone can unhash base64 encoded data, but you can't unencrypt md5 encrypted data without a key.

answered 2008-10-08T19:15:35.450

Your Answer