Esempio n. 1
0
        private static void Test3()
        {
            var auditor = new RandomAuditor(new Random(73), new SubGenPredictor());
            var generator = CreatePasswordGenerator(auditor);

            for (var i = 0; i < 4; i++)
            {
                Console.WriteLine(string.Format("{0}\t{1}", i, generator.GeneratePassword()));
                //Console.ReadLine();
            }

            auditor.DebugOutput = true;
            Console.WriteLine(generator.GeneratePassword());
            Console.ReadLine();
        }
Esempio n. 2
0
        private static void Test4()
        {
            var auditor = new RandomAuditor(new Random(50), new SubGenPredictor());
            var generator = CreatePasswordGenerator(auditor);
            //var generator = new PasswordGenerator(new Random(50));

            var passwords = new List<Password>();
            var currentStates = new List<State>();
            var passwordCount = 0;

            GetPassword(generator, passwords);
            AddSiblings(currentStates, new State(passwords, null));

            while (currentStates.Count > 1)
            {
                passwordCount++;
                Console.WriteLine(string.Format("Observed: {0}\tPossible states: {1}", passwordCount, currentStates.Count));
                //Console.ReadLine();

                GetPassword(generator, passwords);
                var newStates = new List<State>();

                foreach (var state in currentStates)
                    AddSiblings(newStates, new State(state, null));

                currentStates = newStates;
            }

            /*
            var predictor = new SubGenPredictor(currentStates[0].Predictor);
            var possibleRandomOutputs = new List<WeightedValue>[generator.PasswordLength + 4];
            possibleRandomOutputs[0] = predictor.PredictWeightedNext(generator.PasswordLength).ToList();
            possibleRandomOutputs[1] = predictor.PredictWeightedNext(Password.SpecialChars.Length).ToList();
            possibleRandomOutputs[2] = predictor.PredictWeightedNext(generator.PasswordLength - 1).ToList();
            possibleRandomOutputs[3] = predictor.PredictWeightedNext(Password.UpperCaseChars.Length).ToList();
            possibleRandomOutputs[4] = predictor.PredictWeightedNext(generator.PasswordLength - 2).ToList();
            possibleRandomOutputs[5] = predictor.PredictWeightedNext(Password.LowerCaseChars.Length).ToList();
            possibleRandomOutputs[6] = predictor.PredictWeightedNext(generator.PasswordLength - 3).ToList();
            possibleRandomOutputs[7] = predictor.PredictWeightedNext(Password.NumberChars.Length).ToList();

            for(var i = 0; i < generator.PasswordLength - 4; i++)
                possibleRandomOutputs[i + 8] = predictor.PredictWeightedNext(Password.AllChars.Length).ToList();
            */

            while (true)
            {
                auditor.Predictor = currentStates[0].Predictor;
                auditor.DebugOutput = true;
                GetPassword(generator, passwords);
                Console.ReadLine();
            }
        }