Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.13;
Скачать: CL | DM;

Вниз

Проверка сложности пaроля   Найти похожие ветки 

 
Denis123   (2009-10-11 22:09) [0]

Здравствуйте! Нужен aлгоритм проверки сложности пароля в Delphi, есть ли уже написанные, либо статьи, справочное руководство того как проверить пароль на сложность. В MSDN нашел код, но только на VB ...


 
Поросенок ВинниПух   (2009-10-12 00:36) [1]

Чего мудрить-то?
Посмотри на окно с настройкой требований к сложности пароля:
1. минимальная длина.
2. количество небуквенно цифровых символов
3. требование к исторической неповторяемости пароля

все.


 
GDI+   (2009-10-12 00:46) [2]


> Поросенок ВинниПух   (12.10.09 00:36) [1]


+ проверка по словарю брутфорсеров.


 
Германн ©   (2009-10-12 00:54) [3]


> Denis123   (11.10.09 22:09)
>
> Здравствуйте! Нужен aлгоритм проверки сложности пароля

А зачем сей алгоритм нужен? Учебное задание?


 
TIF ©   (2009-10-12 01:40) [4]

+ сравнение с логином/именем пользователя, поиск вхождений


 
McSimm ©   (2009-10-12 02:38) [5]


> Нужен aлгоритм ... нашел код, но
> только на VB

а алгоритм на чем нужен ? :)


 
test ©   (2009-10-12 08:03) [6]

Регулярные выражения + проверка по словарю брутфорсеров.


 
GDI+   (2009-10-12 10:54) [7]


> test ©   (12.10.09 08:03) [6]
>
> Регулярные выражения + проверка по словарю брутфорсеров.


А что, в стандартную поставку Delphi входит библиотека регулярных выражений?


 
test ©   (2009-10-12 12:05) [8]

GDI+   (12.10.09 10:54) [7]
Еще нет, но TRegExpr в виде исходников подключать никто не запрещает.


 
test ©   (2009-10-12 12:06) [9]

GDI+   (12.10.09 10:54) [7]
Найти можно в Гугле


 
Rouse_ ©   (2009-10-12 16:17) [10]

Можно помимо проверки по словарям подключить энтропию.
Пароль с энтропией 4 и больше хороший :)

function CheckEntropy(Buff: PByte; dwSize: DWORD): Double;

 function Log2(const X: Extended): Extended;
 asm
         FLD1
         FLD     X
         FYL2X
         FWAIT
 end;

var
 DataBuff: array [0..255] of Integer;
 FrequencyBuff: array [0..255] of Double;
 I: Integer;
begin
 Result := 0;
 if dwSize = 0 then Exit;
 ZeroMemory(@DataBuff[0], 256 * SizeOf(Integer));
 ZeroMemory(@FrequencyBuff[0], 256 * SizeOf(Double));
 // Смотрим сколько раз встречается каждый символ
 for I := 0 to dwSize - 1 do
 begin
   Inc(DataBuff[Buff^]);
   Inc(Buff);
 end;
 // Рассчитываем частоту появления каждого cимвола
 for I := 0 to 255 do
   FrequencyBuff[I] := DataBuff[I] / dwSize;
 // Рассчитываем энтропию
 for I := 0 to 255 do
   if DataBuff[I] <> 0 then    
     Result := Result +
       (-FrequencyBuff[I] * Log2(FrequencyBuff[I]))
end;

procedure TfrmEntropy.Edit1Change(Sender: TObject);
begin
 Label1.Caption := FloatToStr(CheckEntropy(
   PByte(PChar(Edit1.Text)), Length(Edit1.Text)));
end;


 
Медвежонок Пятачок ©   (2009-10-12 16:22) [11]

все эти требования неизбежно имеют один побочный эффект.
в виде стикера на мониторе.
чтобы не забыть очень хороший пароль, который прошел проверку алгоритма.


 
Denis123   (2009-10-12 16:41) [12]

Да, это нам в колледже задали, написать на Дельфи функцию проверки сложности пароля. В гугле искал не нашел, кроме того, на некоторых сайтах даже пароли qwerty считаются сложными... Словарь "брутфорсеров", сейчас поищу ... спасибо.


 
Медвежонок Пятачок ©   (2009-10-12 16:45) [13]

function IsStrongPassword(const APassword : string) : boolean;
begin
Result := (APassword <> "god") and (APassword <> "love") and (APassword <> "sex")
end;

:)


 
Медвежонок Пятачок ©   (2009-10-12 16:47) [14]

... and (PasswordDictionaryList.IndexOf(APassword) < 0);


 
Медвежонок Пятачок ©   (2009-10-12 16:49) [15]

+ проверка по словарю брутфорсеров.

а словарь брутфорсеров - это алфавит.


 
oldman ©   (2009-10-12 17:19) [16]


> Нужен aлгоритм проверки сложности пароля


Смешно...
Если пароль состоит минимум из 8 символов разного регистра, а также цифр, он сложен.
Если пароль состоит из одной цифры, он ломается максимум за 10 попыток.
Комбинаторику и тервер учил???


 
test ©   (2009-10-12 17:35) [17]

Rouse_ ©   (12.10.09 16:17) [10]
Где бы про энтропию почитать?


 
Игорь Шевченко ©   (2009-10-12 17:38) [18]

Пароль должен быть хорошо запоминаем, бессмыслен или нецензурен, и длинен.


 
test ©   (2009-10-12 17:40) [19]

Игорь Шевченко ©   (12.10.09 17:38) [18]
Мальчик показал жестами что его зовут Хуан 2

Это про оно?


 
Rouse_ ©   (2009-10-12 18:04) [20]


> test ©   (12.10.09 17:35) [17]
>
> Rouse_ ©   (12.10.09 16:17) [10]
> Где бы про энтропию почитать?

Про меру энтропии Шеннона можно найти тут: http://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%8D%D0%BD%D1%82%D1%80%D0%BE%D0%BF%D0%B8%D1%8F

Собственно именно этот алгоритм я и привел.


 
test ©   (2009-10-12 18:22) [21]

Rouse_ ©   (12.10.09 18:04) [20]
Спасибо


 
Гость   (2009-10-12 20:23) [22]


> Смешно...
> Если пароль состоит минимум из 8 символов разного регистра,
>  а также цифр, он сложен.
> Если пароль состоит из одной цифры, он ломается максимум
> за 10 попыток.
> Комбинаторику и тервер учил???
>


Получается пароль Qwerty123 считается сложным?


 
test ©   (2009-10-12 20:42) [23]

Гость   (12.10.09 20:23) [22]
Считается он у брутфорсеровсеров в БД.



Страницы: 1 вся ветка

Текущий архив: 2009.12.13;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.02 c
2-1256321201
Zzzz
2009-10-23 22:06
2009.12.13
открытие содерж. blob-поля во врем. файле


2-1256244709
Drowsy
2009-10-23 00:51
2009.12.13
BDE Administrator.


2-1256041828
Aleks
2009-10-20 16:30
2009.12.13
TreeView MouseRightClick


15-1255330388
@!!ex
2009-10-12 10:53
2009.12.13
Где можно узнать карту высот Самарской области?


2-1256210880
Nucer
2009-10-22 15:28
2009.12.13
Вопрос по исключениям