MD5 hash with salt for keeping password in DB in C#
.net, c#, hash, md5, security
Solution
You can use the HMACMD5 class:
var hmacMD5 = new HMACMD5(salt);
var saltedHash = hmacMD5.ComputeHash(password);
Works with SHA-1, SHA256, SHA384, SHA512 and RIPEMD160 as well:
var hmacSHA1 = new HMACSHA1(salt);
var saltedHash = hmacSHA1.ComputeHash(password);
Both `salt` and `password` are expected as byte arrays.
If you have strings you'll have to convert them to bytes first:
var salt = System.Text.Encoding.UTF8.GetBytes("my salt");
var password = System.Text.Encoding.UTF8.GetBytes("my password");
Problem
Could you please advise me some easy algorithm for hashing user password by MD5, but with salt for increasing reliability. Now I have this one: ``` private static string GenerateHash(string value) { var data = System.Text.Encoding.ASCII.GetBytes(value); data = System.Security.Cryptography.MD5.Create().ComputeHash(data); return Convert.ToBase64String(data); } ```