Delphi-Help

Главная Статьи Пароли Генерация случайного пароля

Генерация случайного пароля

Оцените материал
(0 голосов)


Генерация случайного пароля

Вам понадобилось, чтобы Ваше приложение само создавало пароли? Возможно, данный способ вам пригодится. Всё очень просто: пароль создаётся из символов, выбираемых случайным образом из таблицы.

Совместимость: Delphi 5.x (или выше)

Собственно сам исходник: Пароль создаётся из символов, содержащихся в таблице.

Внимание: Длина пароля должна быть меньше, чем длина таблицы!

Запускаем генератор случайных чисел (только при старте приложения).

procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize;
end;
 
 
function RandomPwd(PWLen: integer): string;
 // таблица символов, используемых в пароле
const StrTable: string =
 '!#$%&/()=?@<>|{[]}\*~+#;:.-_' +
 'ABCDEFGHIJKLMabcdefghijklm' +
 '0123456789' +
 'ДЦЬдцьЯ' + 'NOPQRSTUVWXYZnopqrstuvwxyz';
var
 N, K, X, Y: integer;
begin
 // проверяем максимальную длину пароля
 if (PWlen > Length(StrTable)) then K := Length(StrTable)-1
 else K := PWLen;SetLength(result, K);// устанавливаем длину конечной строки
 Y := Length(StrTable); // Длина Таблицы для внутреннего цикла
 N := 0; // начальное значение цикла
 while N < K do begin // цикл для создания K символов
  X := Random(Y) + 1; // берём следующий случайный символ
  // проверяем присутствие этого символа в конечной строке
  if (pos(StrTable[X], result) = 0) then begin
   inc(N); // символ не найден
   Result[N] :=StrTable[X]; // теперь его сохраняем
  end;
 end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
 // вызываем функцию генерации пароля из 30 символов
 label1.Caption :=  RandomPwd(30);
 // ...
end;
Прочитано 9748 раз

Авторизация



Счетчики