What is a MD5 hash?
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 "admin" is "21232f297a57a5a743894a0e4a801fc3".
These hashes are mostly used to validate file integrity, to encrypt sensitive data (like passwords), and to generate unique identifiers.
Is it secure?
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.
If some of the hashes you enter can be reversed, consider using another way of generating hashes, like using stronger algorithms (SHA-2, Whirlpool, etc), combining algorithms, and using a "salt".