Register now or log in to join your professional community.
Hashing is a one-way function that is applied to a variable-length piece of data (logically called "message") and produces a fixed-length of message digest. Along with a sender's private key, the message digest becomes a digital signature or fingerprint. By using the sender's public key and the same hashing function, the recepient calculates the same hash value to ensure that the data sent by the sender is really him/her. Hashing is mainly used for authentication, nonrepudiation, and data integrity. Also, hashing mainly uses asymmetric key algorithms which are more secure but still can use symmetric keys.
Encryption is a two-way fucntion that is applied to a variable-length data and produces a fixed-length encrypted string. The recepient uses own private key to decrypt the message. The sender uses recepient's public key to encrypt the message. Like hashing, encryption can use both symmetric and asymmetric keys. However, it is not recommended to use asymmetric keys for encryption because it is slow and CPU-intensive.
Encoding (or encapsulation) is not a security component like hashing or encryption and i see no reason of including it in the question. It is just a method for delivering or transferring packets from media to another media. Frame Relay or PPP encapsulation is an example.