The basic idea is that, for efficiency, we want to use one unique key to represent each object in the computer. Using this key we can access that object. So the key is the object's identity.
Hashing process is divided into two steps: (1)first you map different objects in the real world to a unique integer (or we call this integer hash code). for example, you might map "asdasd" to 1 and "werwer" to 2. Note that our requirement is that these two hash codes should represent a unique object. If hash code 1 corresponds to either "sdf" or "wrtwr", then that's not a good hash code generator.
Then the second step is to compress these hash codes into one single dimension.