An algorithm I generally use converts each character to its ASCII code, then inverts the ASCII code bitwise and finally converts the ASCII code back to a character.
I don't know how secure the algorithm is considered. If needed, it would be very easy to add a constant or even computed value (eg offset of character in the string...) to each ASCII code to increase the security level.
Two techniques are: hashing and encryption. Without knowing requirements, my first inclination is usually hashing. Because of the nature of hashing, you may need to take a closer look at the recovery procedures.
Check out my tools for data protection at www.visecurity.com/cryptg.shtml
Also, check alternatives to passwords: www.biometricsview.com