Any computer system that requires password authentication must contain a database of passwords, either in plaintext or hashed in some form. Therefore various techniques of password storage exist. Because the tables are vulnerable to theft, storing the plaintext password is dangerous. Most databases, therefore, store a cryptographic hash of a user's password in the database. In such a system, no one – including the authentication system – can determine what a user's password is by merely looking at the value stored in the database. Instead, when a user enters a password for authentication, the system computes the hash value for the provided password, and that hash value is compared to the stored hash for that user. Authentication is successful if the two hashes match.
A rainbow table is a database that is used to gain authentication by cracking the password hash. It is a precomputed dictionary of plain text passwords and their corresponding hash values that can be used to find out what plain text password produces a particular hash. Since more that one text can produces same hash, It's not important to know what the original password really was, as long as it produces the same hash.
Thank U for reading this! :D