0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 4
|
||||||
1 | ||||||
Ускорение дешифратор SHA256 с способами GPU, многопоточности и многопроцессорности17.09.2018, 02:01. Показов 6784. Ответов 8
Метки cpu, cuda, gpu, numpy, pycharm, python 3.x, sha-256, дешифрование, многопоточность, программа, ускорение (Все метки)
Здравствуйте, уважаемые форумчане!
Познакомился с языком программирования python, решил написать дешифратор хеша sha256. Программа работает но медленно, прошу Вашего содействия для ускорения работы программы. На данный момент дает скорость 60-75кН/с и загружает только один ЦП (центральный процессор) на 50% с использованием одного ядра, не использует ГП (графический процессор). Не знаю как применить многопоточность и многоядерность? Как сделать чтобы программа полностью выполнялась на ГП? Как использовать ресурсы ГП (на любой видеокарте) или ЦП на 80-90%? Я в этой области новичок, у меня видеокарта GeForce 610M. Вот сам код:
1. add_hash() - считывает хэши с файла Input.txt, если не указаны в коде данные к папке Hashing и количество хэшей, то запращивает путь к папке и количество хэшей которые нужно считать с файла 2. check_data() - проверяет считанные хэши на корректность по длине символов, правильность к 16-тиричной системе и выставляет соответствующие флаги 3. buffer_add() - считывает буфер с файла buffer.txt и продолжает с этого места, если его нет то начинает с начала 4. main() - основной код перебора: 4.1 задается цикл 4.1.1 буфер хешируется и сравнивается с введенным хешом 4.1.2 если есть совпадение то записывается в фаил Output.txt 4.1.3 если нет совпадения, то создается новый буфер 4.1.4 с интервалом 1 мин записывается буфер в файл buffer.txt и выводится буфер и скорость перебора на консоль 4.1.5 переход на новый цикл пп. 4.1.1 Любое содействие приветствуется, так как я новичок в Python
0
|
17.09.2018, 02:01 | |
Ответы с готовыми решениями:
8
Теория о многопоточности и многопроцессорности GPU ускорение в Media Encoder [Sony Vegas 13] Ускорение обработки видео за счет подключения GPU Соотношение многопоточности приложения c++ и многопоточности на уровне системы? |
0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 4
|
|
18.09.2018, 16:30 [ТС] | 3 |
суть программы из 16-тиричной системы символов длиной 64 символа (rehash) сделать его хэш по sha256 (real_hash) и сравнить с введенным хэшом (hash), если есть совпадение (real_hash == hash) то произвести запись (rehash) в файл Output.txt, но если нет совпадения (real_hash != hash) то производиться новая генерация (rehash) и так повторяется в цикле
0
|
0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 4
|
|
18.09.2018, 18:23 [ТС] | 5 |
Входные данные такие:
Введите количество HASH (max = 24): 9 F:\Project\Python\ReSHA256 Hash 0 = ea3cc70874294edfb16c6ae710513bdfc5231c95017eea3d04ccdd5e4216c19c Hash 1 = 54cec6c5bf15c3804d7dd989d42db4698656964c214323efd219e1d9f488a941 Hash 2 = 787c5691841b7b37dc62dd705d2862ca079fc641df558566c1e5350fe5c79d64 Hash 3 = 803da4369bc98774d723c657624cda84509f915c6aa60df415b51442825355d1 Hash 4 = 86a3e1f94e8b9f6292b14fd251e2bbac8f4abb1a75c1135f5f1e558e01143bcd Hash 5 = 8891a2e696a76f58d49027db732d7c0147a92168e7bb20496659ed8360af2a2a Hash 6 = 91054dcca25b8dc549ee1bda896e0083037831d1abe27334808ae014455c5cc4 Hash 7 = d413dccf222f6ccd4431458286c36c720ab46e7dd420e35b018b64a0859a883e Hash 8 = 3050b234ff4fa04cc13478c56730a139538647004af300bfb62a53ff4c60dcc8
0
|
931 / 692 / 270
Регистрация: 10.12.2016
Сообщений: 1,707
|
|||||||||||
18.09.2018, 19:45 | 6 | ||||||||||
типа так
лучше даже так
1
|
0 / 0 / 0
Регистрация: 17.09.2018
Сообщений: 4
|
|
19.09.2018, 16:25 [ТС] | 7 |
ты предлагаешь создать случайный генератор входных данных через массив, но проблема в том что возможные комбинации длиной 64 символа из 16 символом (0-f) составляет 488526937079580 комбинации. Создание такого размера массива приведет программу в тупик. Я применил другой подход: сделал генерацию новой комбинации на подобие счетчика, т.е. смена последнего символа на один символ выше (0-f), при достижении символа f меняется предпоследний символ на символ выше и так пока не достигнет комбинации "fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe"
образец: 0000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000001 0000000000000000000000000000000000000000000000000000000000000002 ......... 000000000000000000000000000000000000000000000000000000000000000a 000000000000000000000000000000000000000000000000000000000000000b ........ fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe такой подход дает возможность не создавать массив большого размера и не грузить память За check_input(s,patt) и за check_hash(s,sha) большое спасибо
0
|
19.09.2018, 17:37 | 8 | |||||
В python для этого существуют генераторы.
Для использования GPU нужно юзать PyCUDA (естественно, требуется видеокарта Nvidia с установленной CUDA toolkit). Но весь вычислительный код придется переписать на Си образный диалект.
0
|
931 / 692 / 270
Регистрация: 10.12.2016
Сообщений: 1,707
|
|
19.09.2018, 19:36 | 9 |
это просто пример входных данных.
вообще такие проги надо на Си делать, питон для арифметики медленный
1
|
19.09.2018, 19:36 | |
19.09.2018, 19:36 | |
Помогаю со студенческими работами здесь
9
Скорость, касательное ускорение, полное ускорение, нормальное ускорение и радиус кривизны траектории Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |