예제 #1
0
        public static PasswordEvaluation EvaluatePassword(string entry, PasswordValidationMethod passwordValidationMethod)
        {
            var split = entry.Split(": ");

            var password = split[1];

            var rulesString = split[0];

            var ruleSet = new RuleSet(rulesString, passwordValidationMethod);

            var evaluatedPassword = new PasswordEvaluation(password, ruleSet);

            return(evaluatedPassword);
        }
예제 #2
0
        public static int CalculateNumberOfValidPasswords(List <string> data, PasswordValidationMethod passwordValidationMethod)
        {
            var invalidPasswordCount = 0;

            foreach (var item in data)
            {
                var evaluatedPassword = EvaluatePassword(item, passwordValidationMethod);

                if (evaluatedPassword.IsValid)
                {
                    invalidPasswordCount += 1;
                }
            }

            return(invalidPasswordCount);
        }
예제 #3
0
        public RuleSet(string ruleString, PasswordValidationMethod passwordValidationMethod)
        {
            PasswordValidationMethod = passwordValidationMethod;

            var instancesCharacterSplit = ruleString.Split(" ");

            Character = instancesCharacterSplit[1];

            var instances = instancesCharacterSplit[0];

            var instancesSplit = instances.Split("-");

            LowerBound = int.Parse(instancesSplit[0]);

            UpperBound = int.Parse(instancesSplit[1]);
        }