Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Реализация цикла от и до - Delphi/RAD XE3+ 
V
    Опции темы
Campus2000
Дата 22.5.2018, 18:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.2.2018

Репутация: нет
Всего: нет



Ребята, подскажите цикл генерации случайных паролей. К примеру указываю от 2 и до 10 и генерируется рандомное число паролей от 2 до 10 символов - в порядке убывания (от большего значения до меньшего).

Пример:
Код

o3!7nl@zhw
o2dj511jiw
o6@@!
p8b7
1z8
!z


К примеру как в данном коде задать:
Код

const len=8; {длина пароля}
        x=100; {кол-во создаваемых}
var
  Dict, Pass : string;
  i,j: integer;
  f1 : textfile;
.......................................................
 Randomize; 
 
  for i:=0 to x-1 do
  begin
  Pass:='';
    for j:=0 to len-1 do Pass:=Pass+Dict[Random(75)+1]; {генерируем}
    writeln(f1, Pass); 
  end;

PM MAIL   Вверх
Snowy
Дата 23.5.2018, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 31
Всего: 484



Код

function compare(List: TStringList; Index1, Index2: Integer): Integer;
var
  s1, s2: String;
begin
  s1 := List[Index1]; s2 := List[Index2];
  if Length(s1) = Length(s2) then
     result := AnsiCompareStr(s1, s2)
  else result := Length(s2) - Length(s1);
end;

procedure generatePasswords(minLen: integer; maxLen: integer; count: integer);
// символы для генерации пароля
const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=!@#$%^&*()_+';
var
  sl: TStringList;
  i, j: integer;
  s:    string;
  len:  integer;
begin
  Randomize;
  sl := TStringList.Create;
  try
    for i := 1 to count do
    begin
      len := Random(maxLen - minLen) + minLen;
      SetLength(s, len);
      for j := 1 to len do
        s[j] := chars[Random(Length(chars))+1];
      sl.add(s);
    end;
    sl.CustomSort(compare);
    //Form1.Memo1.Lines.AddStrings(sl);
    sl.SaveToFile('D:\1.txt');
  finally
    sl.Free;
  end;
end;

// test
procedure TForm1.Button1Click(Sender: TObject);
begin
  generatePasswords(2, 10, 100);
end;

PM MAIL   Вверх
Campus2000
Дата 23.5.2018, 18:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 14
Регистрация: 16.2.2018

Репутация: нет
Всего: нет



Snowy, Спасибо за помощь! Все работает отлично!
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1191 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.