Много лет назад я написал простую библиотеку для генерации данных, чтобы смоделировать некоторые данные, которые нам нужны, вы могли бы взглянуть на это, чтобы получить некоторые идеи. Вы предоставляете ему шаблон, который вы хотите сгенерировать, и он будет создавать случайные данные, соответствующие этому шаблону.
Шаблон выглядит следующим образом:
- * - Прописная или строчная буква или цифра.
- L - Буква в верхнем регистре.
- l - строчная буква.
- V - гласный в верхнем регистре.
- v - гласный в нижнем регистре.
- C - Согласный в верхнем регистре.
- c - согласный в нижнем регистре.
- X - любое число, 0-9.
- x - любое число, 1-9.
Это не совсем то, что вы ищете, но вы должны иметь возможность изменить его в соответствии с вашими потребностями.
Это основная логика
РЕДАКТИРОВАТЬ: Прочитав ваши требования еще раз, я думаю, вы должны быть в состоянии изменить мой код, чтобы заставить его работать. Вам потребуется создать шаблон, который соответствует минимальным требованиям к символам / числам для действительного пароля, добавить логику для изменения длины сгенерированного пароля путем добавления случайных символов и, возможно, добавить некоторую логику случайной сортировки в конце, чтобы смешать символы так, чтобы они не всегда были в одном и том же порядке.
EDIT (2): перемещен код на GitHub, обновлены ссылки.
РЕДАКТИРОВАТЬ (3): вместо этого связаны с основным репозиторием Github.