Пример #1
0
        private Dictionary <PasswordPolicyRequirement, string> ParseInput(string[] input)
        {
            var passwordData = new Dictionary <PasswordPolicyRequirement, string>();

            var passwordRegex = @"(\d+)-(\d+) (\w): (\w+)";

            foreach (var line in input)
            {
                var regexMatch   = Regex.Match(line, passwordRegex);
                var requirements = new PasswordPolicyRequirement();
                var password     = "";

                if (regexMatch.Success)
                {
                    requirements.MinimumAppearances = int.Parse(regexMatch.Groups[1].Value);
                    requirements.MaximumApperances  = int.Parse(regexMatch.Groups[2].Value);
                    requirements.RequiredLetter     = regexMatch.Groups[3].Value;

                    password = regexMatch.Groups[4].Value;
                }

                passwordData.Add(requirements, password);
            }

            return(passwordData);
        }
Пример #2
0
        private bool TestPassword(PasswordPolicyRequirement Requirement, string Password)
        {
            //var occurance = LetterCount(Requirement.RequiredLetter, Password);
            var occurance = Password.Count(Requirement.RequiredLetter);

            if (occurance >= Requirement.MinimumAppearances && occurance <= Requirement.MaximumApperances)
            {
                return(true);
            }
            return(false);
        }
Пример #3
0
        private bool TestPassword(PasswordPolicyRequirement Requirement, string Password)
        {
            var occuranceCount = 0;

            if (Password.Substring(Requirement.MinimumAppearances, 1) == Requirement.RequiredLetter)
            {
                occuranceCount++;
            }

            if (Password.Substring(Requirement.MaximumApperances, 1) == Requirement.RequiredLetter)
            {
                occuranceCount++;
            }

            if (occuranceCount == 1)
            {
                return(true);
            }
            return(false);
        }