Password cracking is the process of figuring out a password. Passwords are stored in, or transmitted as, an encrypted bit string which is generated using a cryptographic hash function. This function takes the password as the input and outputs its encrypted form. Since the hash function is a one-way function, it is practically impossible to generate the password from the encrypted bit string.
A common technique used to crack passwords is the brute-force approach; i.e., inputting every possible combination of characters in the hash function and matching the output with the encrypted bit string. Although this seems very time consuming, parallel programming has made it easier to crack passwords using this approach.
A dictionary attack is also a form of the brute force approach, but instead of using every possible word to guess the password, it only uses common actual words. Dictionary attacks are likely to succeed because most people choose words which are part of a language, with slight changes (e.g., adding a number at the end, replacing a letter with a number, etc.)
Free Resources