public ActionResult <Vet> CreateVet(Vet vet) { const string allowedChars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; Random rng = new Random(); char[] chars = new char[4]; for (int i = 0; i < chars.Length; i++) { chars[i] = allowedChars[rng.Next(0, allowedChars.Length)]; } var salt = new string(chars); var saltedPassword = salt + vet.Password; var bytes = ASCIIEncoding.ASCII.GetBytes(saltedPassword); var hashed = new MD5CryptoServiceProvider().ComputeHash(bytes); vet.Password = ByteArrayToString(hashed); vet.Salt = salt; _networkservice.CreateVet(vet); return(CreatedAtRoute("GetVet", new { id = vet.Id.ToString() }, vet)); }