예제 #1
0
        // ----------------------------------------------------------------------------------------------------------------------------

        private void CapitalizeChunks(Password pPassword, PasswordGeneratorOptions pOptions)
        {
            bool capitalFirst = pOptions.HasFlag(PasswordGeneratorOptions.CapitalsFirstInChunks);

            for (int index = 0; index < pPassword.ChunkCount; ++index)
            {
                string text = pPassword.Chunks[index].Text;
                text = (capitalFirst)
                    ? text.Substring(0, 1).ToUpper() + text.Substring(1)
                    : text.Substring(0, text.Length - 1) + text.Substring(text.Length - 1, 1).ToUpper();
                pPassword.Chunks[index].Text = text;
            }
        }
예제 #2
0
        // -------------------------------------------------------------------------------------------------------------------------------------------

        #region GeneratePasswords

        private void pbGenerate_Click(object sender, EventArgs e)
        {
            PasswordGeneratorOptions options = PasswordGeneratorOptions.None;

            if (rbCapitalsFirst.Checked)
            {
                options |= PasswordGeneratorOptions.Capitals | PasswordGeneratorOptions.CapitalsFirstInChunks;
            }
            else if (rbCapitalsLast.Checked)
            {
                options |= PasswordGeneratorOptions.Capitals | PasswordGeneratorOptions.CapitalsLastInChunks;
            }
            else if (rbCapitalsRandom.Checked)
            {
                options |= PasswordGeneratorOptions.Capitals;
            }

            // if (cbCapitals.Checked)
            //    options |= PasswordGeneratorOptions.Capitals;
            if (cbSpecials.Checked)
            {
                options |= PasswordGeneratorOptions.Specials;
                if (!cbBlanks.Checked)
                {
                    options |= PasswordGeneratorOptions.SpecialsNotBlank;
                }
            }

            if (string.IsNullOrEmpty(tbFixedSeparator.Text))
            {
                tbFixedSeparator.Text = PasswordGenerator.SeparatorsDefault.Substring(0, 1);
            }

            char fixedSeparator = tbFixedSeparator.Text[0];

            if (cbSeparators.Checked)
            {
                options |= PasswordGeneratorOptions.Separators;
                if (cbRotSeparators.Checked)
                {
                    options |= PasswordGeneratorOptions.SeparatorRotation;
                }
            }

            PasswordGeneratorOptionsEx optionsEx = new PasswordGeneratorOptionsEx()
            {
                Options             = options,
                CapitalsMinimum     = 1,
                CapitalsMaximum     = (int)nudCapitalsMax.Value,
                SpecialGroupSymbols = tbSpecials.Text,
                SpecialGroupsMin    = 1,
                SpecialGroupsMax    = (int)nudSpecialsMax.Value,
                FixedSeparatorChar  = fixedSeparator,
                RotatingSeparators  = tbSeparators.Text
            };


            PasswordCollection passwords = new PasswordCollection();

            for (int count = 0; count < nudPassToGen.Value; ++count)
            {
                string password = _passwordGenerator.Generate((int)nudPassLen.Value, optionsEx);
                passwords.Append(_passwordGenerator.LastPassword);
            }

            dgvPasswords.AutoGenerateColumns = false;

            var           bindingList = new SortableBindingList <PasswordCollectionItem>(passwords.Passwords);
            BindingSource source      = new BindingSource(bindingList, null);

            dgvPasswords.DataSource = source;
        }
예제 #3
0
        private void pbSave_Click(object sender, EventArgs e)
        {
            Dictionary <PasswordChunkType, int> weights = AdjustWeights();

            if (weights == null)
            {
                return;
            }

            ApplicationConfiguration configuration = new ApplicationConfiguration();

            configuration.PasswordLength = (int)nudPassLen.Value;
            configuration.PasswordCount  = (int)nudPassToGen.Value;

            PasswordGeneratorOptions options = PasswordGeneratorOptions.None;

            if (rbCapitalsFirst.Checked)
            {
                options |= PasswordGeneratorOptions.Capitals | PasswordGeneratorOptions.CapitalsFirstInChunks;
            }
            else if (rbCapitalsLast.Checked)
            {
                options |= PasswordGeneratorOptions.Capitals | PasswordGeneratorOptions.CapitalsLastInChunks;
            }
            else if (rbCapitalsRandom.Checked)
            {
                options |= PasswordGeneratorOptions.Capitals;
            }


            if (cbSpecials.Checked)
            {
                options |= PasswordGeneratorOptions.Specials;
                if (!cbBlanks.Checked)
                {
                    options |= PasswordGeneratorOptions.SpecialsNotBlank;
                }
            }

            if (string.IsNullOrEmpty(tbFixedSeparator.Text))
            {
                tbFixedSeparator.Text = PasswordGenerator.SeparatorsDefault.Substring(0, 1);
            }

            char fixedSeparator = tbFixedSeparator.Text[0];

            if (cbSeparators.Checked)
            {
                options |= PasswordGeneratorOptions.Separators;
                if (cbRotSeparators.Checked)
                {
                    options |= PasswordGeneratorOptions.SeparatorRotation;
                }
            }

            PasswordGeneratorOptionsEx optionsEx = new PasswordGeneratorOptionsEx()
            {
                Options             = options,
                CapitalsMinimum     = 1,
                CapitalsMaximum     = (int)nudCapitalsMax.Value,
                SpecialGroupSymbols = tbSpecials.Text,
                SpecialGroupsMin    = 1,
                SpecialGroupsMax    = (int)nudSpecialsMax.Value,
                FixedSeparatorChar  = fixedSeparator,
                RotatingSeparators  = tbSeparators.Text
            };

            configuration.Options = optionsEx;

            configuration.ChunkTypeWeights = PasswordChunkTypeWeight.GetChunkTypeWeights(weights);

            string errorText;

            configuration.Save(ApplicationConfiguration.ConfigurationFilePath, out errorText);

            NewConfiguration = configuration;

            DialogResult = DialogResult.OK;
        }