I seen this question Encrypting/Hashing plain text passwords in database
and i am aware i shouldnt do md5("salt" + password); and i see an implementation in python for a solution.
Is there a .NET built in function with params i can use instead of writing my own?
I don't think there's a single function but you can do it in a few lines (here using SHA512, but there are other options):
Make sure you use one of the Crypto... classes to ensure the more secure algorithm is used.
No you should not use MD5 for password hashing!!!!!
Bad!!!!! Nor should you perform a salt+password over a single Hash pass (md5 or other)!!! Bad!!!!
Nor should you do salt+password hashed multiple times (unles XOR each hash pass as per PBKDF2!!! Bad!!!!
Use this API: https://sourceforge.net/projects/pwdtknet Good!!!!!
Check out FormsAuthentication.HashPasswordForStoringInConfigFile
Yes, .NET Framework 2.0 and up (to and including 4.5 as of now) implements PBKDF2 (also known as RFC2898 and PKCS#5v2) in a class called Rfc2898DeriveBytes. Technically, it implements PBKDF2-HMAC-SHA-1, which while not as good as PBKDF2-HMAC-SHA-512, is still reasonable for password hashing.
PBKDF2 arguments:
Note that HMACSHA512 versus Rfc2898DeriveBytes for password hash contains some sample .NET code that I have not analyzed in detail, but which may be a useful starting point.