Во-первых, мы должны понять, почему возникает столько дублирующих данных.
В процессе создания словарного файла могут собираться данные из нескольких источников данных, которые сами по себе частично дублируются.Например, при сборе данных из различных таблиц слов, общих наборов паролей, списков различных комбинаций символов и т. д. некоторые основные слова или простые комбинации паролей могут присутствовать в нескольких источниках.
Эти дублирующие данные могут иметь многочисленные негативные последствия.С точки зрения хранения, 2 Т пространства и так огромны, что большое количество повторяющегося содержимого представляет собой пустую трату ценного пространства.В случае фактического использования этого словарного файла для взлома паролей или иных операций дублирование содержимого может привести к ненужным поисковым операциям и сравнениям.Например, если алгоритм при взломе паролей должен сравнивать содержимое словаря с целевым паролем один за другим, повторяющееся содержимое увеличивает количество сравниваний, тем самым замедляя процесс взлома.
Во-вторых, методы фильтрации на основе инструментов текстовой обработки Используйте инструменты в системе Windows - Используйте PowerShell - В системе Windows PowerShell предоставляет богатые возможности текстовой обработки.
Мы можем использовать следующий сценарий PowerShell для удаления повторяющихся строк: `` powershell $lines = Get - Content dictionary.txt $uniqueLines = @ () foreach ($line in $lines) {if ($uniqueLines - notcontains $line) {$uniqueLines + = $line}
""
} $uniqueLines Set - Content unique_dictionary.txt `` Скрипт сначала читает все строки из «dictionary.txt» в массив «$lines».
|""
Затем, проходя через каждую строку в цикле, строка добавляется в новый массив «$uniqueLines», если она не входит в этот массив.Наконец, сохраните содержимое нового массива в файл unique_dictionary.txt.
Алгоритм разделения - из-за очень большого объема нашего словарного файла (2 Т), прямая обработка может столкнуться с проблемами, такими как недостаток памяти.
Алгоритм разделения может очень хорошо решить эту проблему.Этот большой файл можно разделить на несколько более мелких подфайлов.Например, мы можем разделить его на определенное количество строк или размер файла.
- Затем повторяется фильтрация каждого подфайла отдельно. Объединяет обработанные подфайлы в один файл.Во время объединения необходимо также проверить на предмет наличия дублирующего содержимого, поскольку между разными подфайлами может быть одинаковый содержимое.
В-четвертых, проверка результатов фильтрации После повторной фильтрации мы должны проверить, правильно ли результат.
Можно использовать несколько простых методов, таких как случайный выбор ряда строк и проверка их появления в исходных и фильтрованных файлах.Фильтрация действительна, если в исходном файле она встречается несколько раз, а в фильтрованном файле только один раз.
Кроме того, можно сравнить размер исходного и фильтрованного файлов.Если размер фильтрованного файла значительно меньше, чем исходный файл, и его результаты в последующих тестах (например, простой тест на поиск паролей с использованием этого словарного файла, чтобы проверить, работает ли он без пропусков паролей), это также может показать, что повторная фильтрация была более эффективной.
Наш сервер использует 512G памяти, высокоскоростной NVMe протокол жесткого диска сервера, потратил полгода времени, успешно обработка завершена, а также ощутил набор эффективных сценариев обработки, если есть тип запросов, можете связаться с обслуживанием клиентов сайта общения, фильтровать повторяющийся в процессе ямы, а также автоматически обработать сценарий написания!
Фильтрация повторяющегося содержимого в текстовых словарных файлах типа 2T является сложной, но крайне необходимой задачей.Разумный выбор инструментов и алгоритмов позволяет эффективно устранять дубликаты, повышать качество и эффективность использования словарного файла, что имеет важное значение как для взлома паролей, так и для других сценариев приложений, основанных на этом словарном файле