This is a very simple tool that will generate a password. This password is created to be easy to remember yet secure. Compared to your typical password generator the results of this one is generally much more secure.
It is generated by combining a few words that may or may not start with an upper case letter, with numbers or other characters between them.
A quick and easy way to store a users password in a database is by creating a md5 hash of it. To login another md5 hash is created and compared to the stored value. This used to be good enough, and it still works, but now there are large databases (rainbow tables) out there containing all combinations of certain characters which can be used to "crack" a password, or identify the string that the md5 hash was generated from. If no salt is used it is trivial to compromise most passwords using this method.
Once you get up to 12 characters it becomes much harder, if not impossible, to crack a password using rainbow tables and other brute force methods.