/// <summary> /// ''' Generate Password at desired strength and desired number of characters. /// ''' </summary> /// ''' <param name="length">Integer length of the password string.</param> /// ''' <param name="complex">Password Strength that password needs to be.</param> /// ''' <returns>Password String of given length and strength given.</returns> public string generatePassword(int length, passwordComplexity complex) { System.Text.StringBuilder passArray = new System.Text.StringBuilder(); int newIndex; for (int a = 1; a <= length; a++) { newIndex = rollDie(100); int charType = rollDie((int)complex); string list; switch (charType) { case object _ when charType == 1: { list = lowerLetters; break; } case object _ when charType == 2: { list = upperLetters; break; } case object _ when charType == 3: { list = numberChars; break; } default: { list = specialChars; break; } } passArray.Append(getCharAtIndexWrapping(newIndex, list)); } if (checkStrength(passArray.ToString(), complex)) { return(passArray.ToString()); } else { return(generatePassword(length, complex)); } }
/// <summary> /// ''' Get if the password is equivelent to the desired strength. /// ''' </summary> /// ''' <param name="password"></param> /// ''' <param name="strength"></param> /// ''' <returns></returns> /// ''' <remarks></remarks> private bool checkStrength(string password, passwordComplexity strength) { return(getPasswordComplexity(password) >= strength); }
/// <summary> /// ''' Generate Password at the desired strength and 8 characters. /// ''' </summary> /// ''' <param name="strength">The strength of the password to generate.</param> /// ''' <returns>Password String that with 8 characters of the strength you specified.</returns> public string generatePassword(passwordComplexity strength) { return(generatePassword(passwordLength, strength)); }