How to securely hash passwords?
What is the best encryption algorithm? MD5, SHA1, SHA2 or maybe something else? Can you explain me why?
You shouldn't just use plain hashing algorithms anymore. It's not secure because it's become exceedingly easy to brute-force traditional hash algorithms that were designed for speed.
Instead use an adaptive hash algorithm like bcrypt. This is currently the standard secure way to store hashed information, including passwords. It contains implementations in most major programming languages, so it's often just as easy (if not easier) than implementing a hash strategy yourself.