Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Падбор паролей на python

- Ученик (76), закрыт 1 день назад
У меня уже есль код :
for a in range(99999999):
pas = '%08d' % a
print(pas,end='\r')
else:
print('парроль не найден')

Но мне надо его как-то ускорить он находит 99999999 за 32 минуты
Лучший ответ
Faster Union Знаток (251) 2 дня назад
без сторонних импортов ускорить его можно максимум на 10-15%.

for a in range(99999999):
pas = f'{a:08d}'
print(pas, end='\r')

print('пароль не найден')
Остальные ответы
Ttt Мыслитель (5202) 2 дня назад
Питон медленный язык
-Ученик (76) 2 дня назад
Это то да но как это ускорить ?
Ttt Мыслитель (5202) -, никак, юзай другой язык например java c# javascript
Парт Артем Знаток (255) 2 дня назад
Использую C++
-Ученик (76) 2 дня назад
А как на C++?
Парт Артем Знаток (255) #include <iostream> #include <iomanip> int main() { for (int a = 0; a < 99999999; ++a) { std::cout << std::setw(8) << std::setfill('0') << a << "\r"; } std::cout << "парроль не найден" << std::endl; return 0; }
Адис Садовничий Мудрец (10049) 1 день назад
Можно запускать процесс перебора на нескольких ядрах процессора. Делим диапазон чисел между несколькими процессами. И останавливаем все процессы как только пароль найден.
 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Пароль не найден")
-Ученик (76) 1 день назад
Что-то не находит , по какой системе оно ищет
Похожие вопросы