Можно запускать процесс перебора на нескольких ядрах процессора. Делим диапазон чисел между несколькими процессами. И останавливаем все процессы как только пароль найден. import multiprocessing
def brute_force_worker(start, end, stop_event, result_queue):
for a in range(start, end):
if stop_event.is_set():
return
pas = f'{a:08d}'
print(pas, end='\r'
if pas == "12345678":
result_queue.put(pas)
stop_event.set()
return
if __name__ == "__main__":
total_range = 99999999
num_processes = multiprocessing.cpu_count()
chunk_size = total_range // num_processes
stop_event = multiprocessing.Event()
result_queue = multiprocessing.Queue()
processes = []
for i in range(num_processes):
start = i * chunk_size
end = start + chunk_size if i != num_processes - 1 else total_range + 1
process = multiprocessing.Process(
target=brute_force_worker, args=(start, end, stop_event, result_queue)
)
processes.append(process)
process.start()
found_password = None
while not result_queue.empty() or any(p.is_alive() for p in processes):
try:
found_password = result_queue.get(timeout=0.1)
break
except:
continue
stop_event.set()
for process in processes:
process.join()
if found_password:
print(f"\nПароль найден: {found_password}"
else:
print("\nПароль не найден"
![Wink ;) ;)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)