To add further information:
a cryptographic Hash is a one way obfuscation
of data. There is no such "unhash()" function in any computer language. By passing a value through a hash it aims to make the data:
- Less readable
- Less guessable (through automated attack variants, see "Brute Force")
It can be described as a Lossy
cryptographic technique. While the original value can be compared against a hash of the original value to identify if the values match, the original data is lost
in the hashing.
Encryption / Decryption is the Lossless
variant of cryptography. Through a number of programming techniques (hardware or software based), the data is transformed using a key
. This key should either be known by one side (for storage) or by one or more partner systems (for transmission). This works similar to a key in a lock. When the key pushes all of the pins in the tumbler in the correct manner, the lock opens and so does the door/box/locked item. So too with encrypted data, if a key is shared then more than one may access the data.
More secure systems (typically involving transmission of data) require a public and private key that work in tandem. This is similar to having to turn two keys in two separate locks in order to open the door/box/item.
Unfortunately, we cannot accept liability for human error. If you write your password down physically, other humans will have the opportunity to copy it (again, like copying a key with a bar of soap or similar) and use it for their own nefarious purposes.
See:
https://security.stackexchange.com/questions/33860/how-does-hashing-work
http://www.howtogeek.com/166832/brute-force-attacks-explained-how-all-encryption-is-vulnerable/