コード例 #1
0
ファイル: Program.cs プロジェクト: helios12/cs9anddotnet5
        private static bool CheckPassword(string userName, string password)
        {
            if (!Users.ContainsKey(userName))
            {
                return(false);
            }
            User   user = Users[userName];
            string saltedHashedPassword = Protector.SaltAndHash(password, user.Salt);

            return(saltedHashedPassword == user.SaltedHashedPassword);
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: helios12/cs9anddotnet5
        private static User Register(string userName, string password)
        {
            RandomNumberGenerator rng = RandomNumberGenerator.Create();
            var saltBytes             = new byte[16];

            rng.GetBytes(saltBytes);
            string saltText             = Convert.ToBase64String(saltBytes);
            string saltedHashedPassword = Protector.SaltAndHash(password, saltText);
            User   user = new User
            {
                Name = userName,
                Salt = saltText,
                SaltedHashedPassword = saltedHashedPassword
            };

            Users.Add(user.Name, user);
            return(user);
        }
コード例 #3
0
        static void Main(string[] args)
        {
            Write("Enter your name: ");
            string name = ReadLine();

            Write("Enter your credit card number: ");
            string creditCardNumber = ReadLine();

            Write("Enter your password: "******"Customers", new XElement("Customer"));
            XElement customer  = customers.Element("Customer");

            customer.Add(new XElement("name", name));
            customer.Add(new XElement("creditcard", encryptedCreditCardNumber));
            customer.Add(new XElement("password", saltedAndHashedPassword));

            string xmlPath = Path.Combine(Environment.CurrentDirectory, Path.GetRandomFileName() + ".xml");

            using (StreamWriter stream = File.CreateText(xmlPath))
            {
                stream.Write(customers.ToString());
            }

            using (StreamReader stream = File.OpenText(xmlPath))
            {
                string    cusomersString = stream.ReadToEnd();
                XDocument xml            = XDocument.Parse(cusomersString);
                encryptedCreditCardNumber = xml.Element("Customers").Element("Customer").Element("creditcard").Value;
                creditCardNumber          = Protector.Decrypt(encryptedCreditCardNumber, EncryptionPassword);
                WriteLine($"Decrypted credit card number: {creditCardNumber}");
            }
        }