Define hashing and describe briefly including types of hashing and where it is used and advantages and disadvantages of hashing?

Hashing is performed on arbitrary data by a hash function. A hash function is any function that can convert data to either a number or an alphanumeric code.
There are possibly as many types of hashing as there are data. How precisely the hash function works depends on what data it is meant to generate a hash code from.
Hashing is used for a variety of things. For example, a hash table is a data structure used for storing data in memory. Instead of iterating through the structure to find a specific item, we associate a key (hash code) to a particular item (data).
A hash code can be generated from a file or disk image. If the data does not match the code, then the data is assumed to be corrupted.
Hashing has the advantage of taking a larger amount of data and representing it as a smaller amount of data (hash code). The code generated is unique to the data it came from. Generating a hash code can take time however, depending on the function and the data.
Some hash functions include Bernstein hash, Fowler-Noll-Vo hash, Jenkins hash, MurmurHash, Pearson hashing and Zobrist hashing.