Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.12.13;
Скачать: [xml.tar.bz2];

Вниз

Проверка сложности п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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.007 c
15-1255617487
Yegorchic
2009-10-15 18:38
2009.12.13
Вопрос про установку RAID драйверов в Windows


15-1255696143
Kostafey
2009-10-16 16:29
2009.12.13
SQL: Декартово произведение с произвольным множеством


2-1256319619
Заглянувший
2009-10-23 21:40
2009.12.13
Неповтояющийся RANDOM


2-1256711630
petvv
2009-10-28 09:33
2009.12.13
Не пойму с запросом


2-1256444215
STD
2009-10-25 07:16
2009.12.13
TIcon





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский