public static string GeneratePassword(int minimumLength = -1, int maximumLength = -1, int minimumLowerAlphaCount = -1, int minimumUpperAlphaCount = -1, int minimumNumericCount = -1, int minimumNonAlphaNumericCount = -1, int maximumPatternMatchLength = -1, string pattern = null)
        {
            string result;

            while (true)
            {
                result = RandomStringGenerator.GenerateRandomString(minimumLength, maximumLength, minimumLowerAlphaCount, minimumUpperAlphaCount, minimumNumericCount, minimumNonAlphaNumericCount, maximumPatternMatchLength, pattern);
                if (VerifyPasswordComplexity(result, minimumLength, maximumLength, minimumLowerAlphaCount, minimumUpperAlphaCount, minimumNumericCount, minimumNonAlphaNumericCount, maximumPatternMatchLength, pattern))
                {
                    break;
                }
            }
            return(result);
        }
        private static void InitializeObscurity()
        {
            encryptKeyArray = new string[_randomizationLevel];
            for (int i = 0; i < encryptKeyArray.Length; i++)
            {
                bool validated = false;
                while (!validated)
                {
                    encryptKeyArray[i] = RandomStringGenerator.GenerateRandomString(24, 24, 2, 2, 2, 2);
                    validated          = RandomStringGenerator.ValidateRandomString(encryptKeyArray[i], 24, 24, 2, 2, 2, 2);
                }
            }

            initVectorArray = new string[_randomizationLevel];
            for (int i = 0; i < initVectorArray.Length; i++)
            {
                bool validated = false;
                while (!validated)
                {
                    initVectorArray[i] = RandomStringGenerator.GenerateRandomString(16, 16, 2, 2, 2, 2);
                    validated          = RandomStringGenerator.ValidateRandomString(initVectorArray[i], 16, 16, 2, 2, 2, 2);
                }
            }
        }