-5

Предположим, я хочу распространять задачу перебора между N машиной.алгоритм для нарезки перераспределения ключей для ключей

У меня есть все буквенно-цифровые кодировки [a-zA-Z0-9] и предположим, что длина от 1 до 8.

хочу распространять диапазон паролей между моими работниками и грубой силой.

Как я могу реализовать этот алгоритм для диапазонов резки?

ответ

0

Начнем с немного более простой проблемы. Все ключи - 8 числовых цифр, и у вас 10 машин.

Простой достаточно - одна машина проверяет 0???????, другая проверяет 1??????? и так далее. Обратите внимание, что эта нарезка не заботится о том, чтобы вы выполняли многопроцессорную обработку - это просто распределение диапазонов путем фиксации одной из цифр.

Ваша версия немного вовлечена. Каждый срез имеет диапазон для первой цифры (и, возможно, второй, может быть, больше, в зависимости от того, насколько вам равны размеры срезов).

Предположим, вам нужны двухсимвольные префиксы. Выполняйте проверки паролей с одним символом, поэтому вам больше не нужно беспокоиться об этом - их недостаточно, чтобы беспокоиться о многопроцессорной обработке.

Затем (по крайней мере, концептуально) вы создадите список двухсимвольных префиксов и разделите этот список.

Что я подразумеваю под «концептуальным»? Имеется 62 допустимых символа (26 прописных букв, 26 строчных букв, 10 цифр). Таким образом, есть 62*62 = 3844 возможных двухсимвольных префиксов. Но вам не нужно перечислять их все, чтобы определить, какой префикс происходит в какой позиции. Если есть пяти процессоров, я хочу, чтобы список префиксов в 5. Таким образом, есть 6 границы между дольками ...

Bound 0  1  2  3  4  5 
     |  |  |  |  |  | 
Slice | 1 | 2 | 3 | 4 | 5 | 

Положения границ в пределах этих 3844 префиксов ...

|-------+------------+--------| 
| Bound | Calc  | Result | 
|-------+------------+--------| 
|  0 | (3844*0)/5 |  0 | 
|  1 | (3844*1)/5 | 768 | 
|  2 | (3844*2)/5 | 1537 | 
|  3 | (3844*3)/5 | 2306 | 
|  4 | (3844*4)/5 | 3075 | 
|  5 | (3844*5)/5 | 3844 | 
|-------+------------+--------| 

так ломтики ...

|-------+------------------| 
| Slice | Indexes   | 
|-------+------------------| 
|  1 | 0 <= i < 768 | 
|  2 | 768 <= i < 1537 | 
|  3 | 1537 <= i < 2306 | 
|  4 | 2306 <= i < 3075 | 
|  5 | 3075 <= i < 3844 | 
|-------+------------------| 

для каждого процессора, чтобы отслеживать, сколько префиксы он обрабатывается до сих пор нет никакой реальной проблемы, но для этого нужно знать, с чего начать, так что нам нужно преобразовать индекс к двухсимвольному префиксу. Предполагая, что вы используете коды от 0 до 61 (62 различных кодов) для нижнего регистра, то в верхнем регистре, то цифры, вот как вы конвертируете для связанного 1 ...

  • 768/62 = 12 остаток 24
  • Character 12 (с нуля = a) является m
  • Character 24 y
  • приставка два-герой "мой".

Итак, ваш первый кусочек от «аа» до, но не включая «мой». Процессор, имеющий дело с этим, должен просто попробовать любой возможный суффикс, включая пустой суффикс.

 Смежные вопросы

  • Нет связанных вопросов^_^