/// <summary> /// Generates User object with the hashed password /// </summary> /// <param name="email"></param> /// <param name="password"></param> /// <param name="saltHex"></param> /// <returns name="User"></returns> private static Try <User> GenerateUserObject(string email, string password, string saltHex) { // var prf = KeyDerivationPrf.HMACSHA256; // var hash = KeyDerivation.Pbkdf2(password, salt, prf, 10000, 64); // var hex = BitConverter.ToString(hash).Replace("-", string.Empty).ToLower(); var salt = Encoding.UTF8.GetBytes(saltHex); var passwordBytes = Encoding.UTF8.GetBytes(password); using var sha256 = new HMACSHA256(passwordBytes); using var pbkdf2 = Pbkdf2.New(sha256, salt, 10000); var hex = BitConverter.ToString(pbkdf2.GetBytes(64)).Replace("-", string.Empty).ToLower(); return(new User { Email = email, Password = hex }); }