Нужно немного указывать на часть кода в John The Ripper
Мне сам этот инструмент не нравится, но люди говорят, что он самый быстрый в взломе паролей грубой силой, но меня интересует не взлом паролей, мне нужен алгоритм, который генерирует данные грубой силы, такие как "AA, AB, AC,......ZA", но я не могу найти его в источнике, кто-нибудь может просто сказать мне, как он будет выглядеть или где мне искать его в источнике?
или если кто-нибудь знает хороший и быстрый алгоритм для генерации этих строк в соответствии с заданным набором символов? лайк
char *charset1 = "abcdefghijklmnopqrstuvwxyz";
char *charset1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
char *charset1 = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ........
Благодарю.
1 ответ
Разбей свою проблему.
- Генерация всех строк одного символа A - Z
- Сгенерировать все 2 строки символов AA - ZZ
- Сгенерировать все 3 строки символов AAA - ZZZ
- и т.п.
Теперь рассмотрим обработку, например, AAA - ZZZ, проблемы печати всех возможных трехзначных чисел в базе 26 (или скольких символов в вашем наборе символов).
Джон Потрошитель начинает с использования другой техники со встроенным словарем:
пароль
пароль
passw0rd
passw0rd
и т.п.
ETA: Вот пример кода для двухсимвольной версии, AA - ZZ. Мой C очень ржавый, поэтому этот фрагмент Java:
// Character set
String charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int cSetSize = charset.length();
// Two character strings AA - ZZ
int numChars = 2;
int limit = cSetSize * cSetSize;
char[] result = new char[numChars];
// Build strings
for (int i = 0; i < limit; ++i) {
// Convert i to base cSetSize
int current = i;
for (int j = numChars - 1; j >= 0; --j) {
result[j] = charset.charAt(current % cSetSize);
current /= cSetSize;
}
// Do something with string
System.out.println(new String(result));
}