using System.Security.Cryptography;
public static void Main()
int passwordSaltKeySize = 5;
var saltKey = CreateSaltKey(passwordSaltKeySize);
string hashedPassword = CreatePasswordHash(password, saltKey);
Console.WriteLine(saltKey);
Console.WriteLine(hashedPassword);
private static string CreateSaltKey(int size)
using var provider = new RNGCryptoServiceProvider();
var buff = new byte[size];
return Convert.ToBase64String(buff);
private static string CreatePasswordHash(string password, string saltKey)
byte[] data = Encoding.UTF8.GetBytes(string.Concat(password, saltKey));
var algorithm = (HashAlgorithm)CryptoConfig.CreateFromName("SHA512");
throw new ArgumentException("Unrecognized hash name");
if (trimByteCount > 0 && data.Length > trimByteCount)
var newData = new byte[trimByteCount];
Array.Copy(data, newData, trimByteCount);
return BitConverter.ToString(algorithm.ComputeHash(newData)).Replace("-", string.Empty);
return BitConverter.ToString(algorithm.ComputeHash(data)).Replace("-", string.Empty);