|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Генерация комбинаций |
|
|
[решено] Генерация комбинаций
|
Старожил Сообщения: 398 |
Профиль | Сайт | Отправить PM | Цитировать Скажите пожалуйста, можно ли средствами автоита сгенереровать .тхт документ с всеми возможными комбинациями клавиатуры от 6 до 20 символов, на каждой новой строчке новая комбинация?
|
|
------- Отправлено: 21:43, 23-01-2009 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата morgan1991:
|
|
------- Отправлено: 21:56, 23-01-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Creat0R:
;jnx;dgnh jdjjdkgkkrtjh kdjfngjj лорир жлдовар 54524енкнеан5 Обсалютно любые комбинации, на обоих языках. |
|
------- Отправлено: 23:35, 23-01-2009 | #3 |
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать Можно попробовать так.
HotKeySet("{esc}","es") $file=FileOpen("comb.txt",1) Dim $alph[61] $alph[0]="a" $alph[1]="b" $alph[2]="c" $alph[3]="d" $alph[4]="e" $alph[5]="f" $alph[6]="g" $alph[7]="h" $alph[8]="i" $alph[9]="j" $alph[10]="k" $alph[11]="l" $alph[12]="m" $alph[13]="n" $alph[14]="o" $alph[15]="p" $alph[16]="q" $alph[17]="r" $alph[18]="s" $alph[19]="t" $alph[20]="u" $alph[21]="v" $alph[22]="w" $alph[23]="x" $alph[24]="y" $alph[25]="z" $alph[26]="а" $alph[27]="б" $alph[28]="в" $alph[29]="г" $alph[30]="д" $alph[31]="е" $alph[32]="ё" $alph[33]="ж" $alph[34]="з" $alph[35]="и" $alph[36]="й" $alph[37]="к" $alph[38]="л" $alph[39]="м" $alph[40]="н" $alph[41]="о" $alph[42]="п" $alph[43]="р" $alph[44]="с" $alph[45]="т" $alph[46]="у" $alph[47]="ф" $alph[48]="х" $alph[49]="ц" $alph[50]="ч" $alph[51]="ш" $alph[52]="щ" $alph[53]="ъ" $alph[54]="ы" $alph[55]="ь" $alph[56]="э" $alph[57]="ю" $alph[58]="я" $alph[59]=" " $alph[60]="" ;#cs For $i1=60 to 0 Step -1 ;#include<thread2.au3> For $i2=60 to 0 Step -1 For $i3=60 to 0 Step -1 For $i4=60 to 0 Step -1 For $i5=60 to 0 Step -1 For $i6=60 to 0 Step -1 For $i7=60 to 0 Step -1 For $i8=60 to 0 Step -1 For $i9=60 to 0 Step -1 For $i10=60 to 0 Step -1 FileWrite($file,$alph[$i1]&$alph[$i2]&$alph[$i3]&$alph[$i4]&$alph[$i5]&$alph[$i6]&$alph[$i7]&$alph[$i8]&$alph[$i9]&$alph[$i10]&@CRLF) Next Next Next Next Next Next Next Next Next Next MsgBox(0,$br,$co) ;#ce Func es() if MsgBox(4,"","Выходим?")=6 Then Exit EndFunc |
Отправлено: 00:01, 24-01-2009 | #4 |
Старожил Сообщения: 398
|
Профиль | Сайт | Отправить PM | Цитировать Спасибо
|
|
------- Отправлено: 00:37, 24-01-2009 | #5 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата 266903582:
Это долго... Для начала вот функция гинерирующая строку от 6 до 20 случайных символов: $sRandomString = _StringGetRandomString(6, 20) MsgBox(64, "Result", $sRandomString) Func _StringGetRandomString($iMin=1, $iMax=1) If $iMax < $iMin Then Return SetError(1, 0, 0) Local $iRandom Local $sRet_Str = '' For $i = 1 To Random($iMin, $iMax, 1) $sRet_Str &= Chr(Random(33, 255, 1)) Next Return $sRet_Str EndFunc |
|
------- Отправлено: 01:39, 24-01-2009 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Вообщем задача не на скорую руку, вот пример используя функцию выше, у меня на P4 ушло около 30'ти секунд! на гинерацию всех(?) вариантов от 6 до 7, т.ч можете представить сколько уйдёт на 6-20:
$sFile_Content = "" $iMin_Number = 6 $iMax_Number = 20 $iVars_Count = 0 ;Подсчитываем возможное число вариантов для значении 6 - 20. For $i = $iMin_Number To $iMax_Number $iVars_Count += _NumberVarsCount($i) ConsoleWrite($iVars_Count & @CRLF) Next ;Проходимся столько раз (сколько есть вариантов у 6-20) в цикле и получаем случайные строки содержащие от 6-ти до 20-ти символов. For $i = 1 To $iVars_Count $sRandomString = _StringGetRandomString($iMin_Number, $iMax_Number) While StringInStr($sFile_Content, $sRandomString & @CRLF) $sRandomString = _StringGetRandomString($iMin_Number, $iMax_Number) WEnd $sFile_Content &= $sRandomString & @CRLF Next FileWrite("File.txt", $sFile_Content) Func _StringGetRandomString($iMin=1, $iMax=1) If $iMax < $iMin Then Return SetError(1, 0, 0) Local $iRandom Local $sRet_Str = '' For $i = 1 To Random($iMin, $iMax, 1) $sRet_Str &= Chr(Random(33, 255, 1)) Next Return $sRet_Str EndFunc Func _NumberVarsCount($Number) If Not IsNumber($Number) Then Return SetError(1, 0, $Number) If $Number > 65 Then Return SetError(2, 0, -1) Local $iCnt, $iNumber = 1 For $iCnt = 1 To $Number-1 $iNumber *= ($iCnt+1) Next Return SetError(0, 0, $iNumber) EndFunc |
------- Отправлено: 02:11, 24-01-2009 | #7 |
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
P. S. если на ночь оставить, то до 15-ти символов может добраться |
|
------- Отправлено: 12:11, 24-01-2009 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата 266903582:
Вот тут остаётся важный вопрос, возможно ли запустить заданное число (в переменной) рекурсивных циклов, т.е один выполняется в другом? Тогда можно было бы сделать функцию, и дать возможность указать число символов для гинерации (или подбора, если делать для перебора паролей). Примерно вот так (это в теле последнего цикла): Где $sChars это текущая сгинерированная строка... |
|
------- Отправлено: 13:26, 24-01-2009 | #9 |
Пользователь Сообщения: 67
|
Профиль | Отправить PM | Цитировать Цитата Creat0R:
Цитата Creat0R:
|
||
------- Последний раз редактировалось 266903582, 24-01-2009 в 14:31. Отправлено: 14:01, 24-01-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] генерация fileinstall | morgan1991 | AutoIt | 3 | 30-03-2009 18:53 | |
[решено] JavaScript. Генерация html-кода. | System Failure | Вебмастеру | 3 | 20-07-2007 15:28 | |
генерация новых ключей для ikey | rivera | Защита компьютерных систем | 0 | 19-01-2006 09:49 | |
Генерация кода <a>. Perl. | benya | Вебмастеру | 1 | 18-08-2005 19:54 | |
*Решено* | Задача по комбинаторике. Генератор комбинаций | Surround | Программирование и базы данных | 14 | 18-02-2005 02:16 |
|