На главную
ПРАВИЛА FAQ Помощь Участники Календарь Избранное DigiMania RSS
msm.ru
! Правила раздела Ищу исходники!
Раздел создан для обмена исходниками, как своими, так и чужими. Попытки продажи собственных исходников крайне не приветствуются (для этого у нас есть разделы ПОМОЩЬ СТУДЕНТАМ и Разовые заказы и подработка), а попытки продажи чужих исходников будут наказываться.

Обратите внимание:
1. Прежде чем начать новую тему или отправить сообщение, убедитесь, что Вы не нарушаете правил форума!
2. Обязательно воспользуйтесь поиском. Весьма вероятно, что кто-то до вас уже искал интересующие вас исходники.
3. При создании темы обязательно указывайте интересующий вас язык программирования! Указывать следует в таком формате: "[_язык_] Название темы". Например, "[C++] Ищу исходники простого графического редактора"
4. Не забывайте пользоваться тегом [ code=*** ] ...текст программы... [ /code ] для выделения текста программы подсветкой!

Полезные ссылки:
user posted image Поиск по Разделу
Модераторы: B.V.
  
> [Delphi] Генератор паролей, Как улучшить генератор пароля?
    Здравствуйте, уважаемые форумчане! Необходим хороший генератор паролей для программы. Написал такой.
    ExpandedWrap disabled
      function GeneratePassword (const ALength: integer; const IncBigLetters, IncSmallLetters, IncNums: boolean; const ASymbols: string; const APasswordUnique, CheckDB, AddDB: boolean): string;
       function isUnique (const AWord: string; ASymbol: Char): boolean;
       var i: integer;
       begin
       Result:= true;
       for i:= 1 to Length(AWord) do
        if AWord[i] = ASymbol then Result:= false;
       end;
      var BL, SL, NM, SM, RV: integer;
          RS: string;
          t: Char;
          skip, b: boolean;
      begin
      repeat
       SetStatus(Format(GetLocalStrA(26), [Length(RS)]));
       skip:= false;
       BL:= Random(26);
       SL:= Random(26);
       SM:= Random(Length(ASymbols));
       NM:= Random(10);
       RV:= Random(4);
       case RV of
        0: if IncBigLetters then t:= BigLetters[BL+1] else skip:= true;
        1: if IncSmallLetters then t:= SmallLetters[SL+1] else skip:= true;
        2: if ASymbols <> '' then t:= ASymbols[SM+1] else skip:= true;
        3: if IncNums then t:= IntToStr(NM)[1] else skip:= true;
        end;
       if skip then
        b:= false
        else
        if APasswordUnique then
         b:= isUnique(RS, t)
         else
         b:= true;
       if b then
        RS:= RS + t;
      until (Length(RS) = ALength);
      if CheckDB then
       SetStatus(GetLocalStrA(27));
      Result:= GeneratePassword(ALength, IncBigLetters, IncSmallLetters, IncNums, ASymbols, APasswordUnique, CheckDB, AddDB);
      end;

    Но этот метод не совсем работает... Выдаёт примерно похожие пароли. Как улучшить?
    Сообщение отредактировано: BadBoyAlex -
    Я ещё вернуся...
    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
    0 пользователей:


    Рейтинг@Mail.ru
    [ Script Execution time: 0,0651 ]   [ 15 queries used ]   [ Generated: 18.07.19, 17:35 GMT ]