MD5 (Message Digest algorithm, 5th version) is an algorithm which converts a given sequence of characters into another unique sequence of characters, with a fixed length, called "hash". For instance, the MD5 hash of the word password is 5f4dcc3b5aa765d61d8327deb882cf99.
These hashes are mostly used to validate file integrity, to encrypt sensitive data (like passwords), and to generate unique identifiers.
MD5 hashes are theoretically impossible to reverse directly, ie, it is not possible to retrieve the original string from a given hash using only mathematical operations.
Most web sites and applications store their user passwords into databases with MD5 encryption. This method appears to be safe as it seems impossible to retrieve original user passwords if, say, a hacker manages to have a look at the database content.
Unfortunately, there is a way to decrypt a MD5 hash, using a dictionary populated with strings and their MD5 counterpart. As most users use very simple passwords (like "123456", "password", "abc123", etc), MD5 dictionaries make them very easy to retrieve.
This website uses a MD5 reverse dictionary containing several millions of entries, which you can use with MD5 hashes from your application.