Пример #1
0
        /// <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
            });
        }