|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.02.2012, 18:36 | #1 |
Пользователь
Регистрация: 06.02.2012
Сообщений: 12
|
программа для подбора пароля
Нужно написать программу измерения времени при подборе пароля методом перебора при использовании различных линеек символов. Т.е., забить какой-либо пароль в массив и потом путём перебора букв, цифр и символов его подобрать. И в итоге получить время длительности всей этой процедуры. Как это можно реализовать на языке Pascal?
|
06.02.2012, 23:09 | #2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
1) по известным формулам (см. комбинаторику) вычисляем всё возможное количество вариантов (исходя из длины пароля и используемых символов)
2) запускаем тест на перебор N-го числа паролей (например, 1000 или 10000). получаем среднюю скорость перебора (количество паролей в секунду). Делим общее количество на скорость перебора - получаете требуемое время (сколько потребуется времени, чтобы перебрать все пароли из "данной линейки символов". всё. p.s. обычно программы постоянно контролируют прошедшее с начала перебора время и количество перебранных вариантов и, исходя их этого, скорость перебора и требуемое время могут динамически изменяться... |
07.02.2012, 09:56 | #3 |
Пользователь
Регистрация: 06.02.2012
Сообщений: 12
|
Не напишете примерный код, если вам не сложно..? Или хотя бы, с помощью каких функций ищется средняя скорость перебора..?
|
07.02.2012, 10:32 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
в цикле перебираете N значений. получаете время после цикла. вычитаете из второго времени первое ( получается длительность выполнения цикла - t ). Делите N (число перебранных паролей) на длительность t - получаете ответ: число паролей в единицу времени (то, в чём у Вас измерялось t), всё. |
|
07.02.2012, 10:51 | #5 |
Пользователь
Регистрация: 06.02.2012
Сообщений: 12
|
Это начальное время должно же быть равным 0??
Допустим, что пароль состоит из 2 символов, вернее из двух цифр от 1 до 5. Тогда примерный код на Си: i Код:
Дальше не могу понять как узнать время после цикла?? Возможно, я слишком буквально понимаю... Последний раз редактировалось ACE Valery; 07.02.2012 в 13:48. |
07.02.2012, 11:25 | #6 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
p.s. ну если вы хотите узнать, сколько времени займёт у Вас прогулка до магазина, а секундомера у Вас нет, есть только ЧАСЫ. Вы как поступите?! Засечёте начальное время, так? потом конечное. и разница даст Вам требуемый ответ. |
|
07.02.2012, 11:45 | #7 |
Пользователь
Регистрация: 06.02.2012
Сообщений: 12
|
Ну да, без системных функций не обойтись получается... Скажите, организация циклов в приведённом коде у меня правильная хоть?
|
07.02.2012, 15:19 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
без системных функций не обойтись (практически не обойтись. да и не вижу в их использовании больших проблем. в конце концов, вас же не смущает, что Вы используете системную функцию ввода данных scanf ?!)
что касается вашего кода, то 1) я абсолютно не знаю С 2) в коде явно не хватает в цикле одного значения: вы цикл по j крутите от 1 до 24 (<25) - тогда уже от нуля надо: Код:
что, если пароль будет из 4-х символов, будете код полностью переписывать?! надо не так делать... 4) я ваш алгоритм перебора абсолютно не понял - зачем две переменные, зачем два вложенных друг в друга цикла - непонятно. Вы бы посмотрели комбинаторные алгоритмы. Они достаточно просто решают подобные задачи (особенно при использовании рекурсии). p.s. а зачем Вам это нужно? Возьмите на форуме/интернете готовую программку и пользуйтесь на здоровье... |
07.02.2012, 16:57 | #9 |
Пользователь
Регистрация: 06.02.2012
Сообщений: 12
|
Проще задать определённое количество символов в пароле, чем писать от 1 до n или что-то в этом роде...
parol - это массив целых чисел, пароль, вводимый с консоли parol1 - это результат перебирания паролей Объясняю свою идею кода: инициализируются 2 массива, один из них, т.е. пароль, вводится сразу же в первом цикле. Далее начинается перебор 25 вариантов пароля до тех пор, пока один из перебираемых вариантов, записанный в массив parol1 не сравнится с начальным введённым паролем. Правда я здесь, в коде, забыла указать, что перебор происходит именно между числами от 1 до 5, поэтому и получаются 25 вариантов... Как на паскале такую идею реализовать, не забыть, что используются числа от 1 до 5 и всё остальное, если вы поняли мою идею? P.S.: Уже совсем запуталась, некудышный из меня программист. Я пыталась найти такую программу, нету, может неправильно искала...Здесь на форуме есть? |
07.02.2012, 17:07 | #10 | |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Цитата:
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Не могу получить запрос пароля для подключения к firebird | toboom | БД в Delphi | 0 | 06.12.2011 16:21 |
Запрос пароля на начале программы и запускалась ли ранее программа | pastuhdima | Помощь студентам | 1 | 06.10.2011 17:39 |
Поле ввода для пароля | Небесный | HTML и CSS | 2 | 06.11.2010 21:09 |
Спам атака методом подбора. | Alex Cones | Свободное общение | 14 | 21.10.2009 11:22 |
Сохранение пароля для расшифровки | Lime | Общие вопросы Delphi | 25 | 01.03.2009 19:57 |