using System.Security.Cryptography;
public static void Main()
var buffer = new byte[10];
new Random().NextBytes(buffer);
var salt = Encoding.UTF8.GetString(buffer);
Console.WriteLine("Password antes do hash: '{0}'", password);
Console.WriteLine("Salto: '{0}'", salt);
Console.WriteLine("Salto + Password: '{0}'", salt + password);
Console.WriteLine("Hash da senha: '{0}'", Hash(salt + password));
Console.WriteLine("Agora é só salvar '{0}' em um campo e '{1}' no outro no banco.", salt, Hash(salt + password));
public static string Hash(string input)
var hash = (new SHA1Managed()).ComputeHash(Encoding.UTF8.GetBytes(input));
return string.Join("", hash.Select(b => b.ToString("x2")).ToArray());