One thing I like to do is this:
$password = md5($password);
$password = strrev($password);
Just as an added measure of confusion.
There's absolutely nothing stopping anyone adding dozens of sha1's and md5's, or whatever else they want to do. I imagine it makes them safer, but I suppose it's effectiveness wears off.
One thing I would reccomend is just do a few random letter replacements, the more the better. Just make sure you store them in an external include (.php so they cant be opened) so that you can call them again when handling logins etc.
Not decryptable, but you can crack it by brute force. This is where you go through all the possible key combinations to see if it matches the original string.
__________________
You design in photoshop, I code into valid XHTML/CSS. Professional PSD, PNG or HTML to tableless XHTML/CSS designs. For more info, send me a PM.
True. Anything that can be hashed can be "unhashed." Supercomputers combined with huge databases can "unhash" anything. Be it SHA1, MD5, MD4, or lesser know algorithms such as the AP, DEK, DJB, and the widely used ELF.
Combine supercomputers equivalent to those used for genetic sequencing and a database capable of more than 1.0873661566567430802736528525679*10^147 records (Oracle, IBM's DB2), and you'll have a database which can hold all possible combinations for a-z A-Z 0-9 and these special characters `~!@#$%^&*()_-+={[}]|\:;"'<,>.?/ for up to a string that is only 10 characters in length.