Показать сообщение отдельно
Старый 16.03.2005, 14:10     # 7
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отсек
Пол: Male
Сообщения: 14 496

Borland - Гад и сволочь
Цитата:
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 на каджый доп. символ.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий


Последний раз редактировалось Borland; 16.03.2005 в 14:17.
Borland вне форума