Если известна максимальная длинна паролей, то есть тупой и простой способ решения.
Прежде всего нам известно:
- каждый символ заменяется на два прописных символа латинского алфавита.
- заменяется единозначно в зависимости от рассположения в строке, т.е. учитывается порядковый номер символа и на замену не влияют никакие другие факторы.
Решение:
Во-первых создадим (26*2)+10+? паролей (буквы в латинском алфавите + цифры + другие разрешенные спецсимволы) вида "aaaaaaaaaaaaa", "1111111111111111", "BBBBBBBBBBBBB". Длина паролей равна длине максимально возможного пароля.
После чего создадим массив данных где значением будет символ плюс порядковый номер символа, а ключем то, на что это заменилось(т.е. пара букв).
Дальше я думаю объяснять не надо?
ЗЫ: Если длина паролей не ограничена, то можно ввести ограничение, ну скажем в 100 символов, реально то всегда меньше будет
.