Цитата:
krotaz:
а как это самому написать ?
|
Пример на M$ qbasic (входит в состав DOS и WinNT 4.0), на скорую руку. Тупо перебирает все возможные комбинации...
Код:
nabor$ = "abcdefg"
dlnabor% = 7
REM
DIM pass(5) AS STRING
OPEN "output.txt" FOR OUTPUT AS #1
REM
FOR i% = 1 TO dlnabor% STEP 1
pass(1) = MID$(nabor$, i%, 1)
FOR j% = 1 TO dlnabor% STEP 1
IF j% = i% THEN GOTO NJ
pass(2) = MID$(nabor$, j%, 1)
FOR k% = 1 TO dlnabor% STEP 1
IF (k% = i%) OR (k% = j%) THEN GOTO NK
pass(3) = MID$(nabor$, k%, 1)
FOR l% = 1 TO dlnabor% STEP 1
IF (l% = k%) OR (l% = j%) OR (l% = i%) THEN GOTO NL
pass(4) = MID$(nabor$, l%, 1)
FOR m% = 1 TO dlnabor% STEP 1
IF (m% = l%) OR (m% = k%) OR (m% = j%) OR (m% = i%) THEN GOTO NM
pass(5) = MID$(nabor$, m%, 1)
PRINT #1, pass(1); pass(2); pass(3); pass(4); pass(5)
NM:
NEXT m%
NL:
NEXT l%
NK:
NEXT k%
NJ:
NEXT j%
NEXT i%
CLOSE #1
Можно, конечно, сделать намного красивее и правильнее, но это долго. Да и лень...
Проверки на длину набора не производятся (считай сам).
Уникальность символов в наборе - опять же на твоей совести.
Длина пароля 5, если надо больше - добавляется ещё один вложенный цикл и одна переменная в каждую проверку IF на каджый доп. символ.