Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

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

Delphi , Синтаксис , Пароли

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

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

function RandomPassword(PLen: Integer): string;
 var
   str: string;
 begin
   Randomize;
   //string with all possible chars 
  str    := 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
   Result := '';
   repeat
     Result := Result + str[Random(Length(str)) + 1];
   until (Length(Result) = PLen)
 end;

 procedure TForm1.Button1Click(Sender: TObject);
 begin
   //generate a password with 10 chars 
  label1.Caption := RandomPassword(10);
 end;


 // Another function from ReNoiZer /=RNZ=/; renoizer@mail.ru 

function RandomWord(dictSize, lngStepSize, wordLen, minWordLen: Integer): string;
 begin
   Result := '';
   if (wordLen < minWordLen) and (minWordLen > 0) then
     wordLen := minWordLen
   else if (wordLen < 1) and (minWordLen < 1) then wordLen := 1;
   repeat
     Result := Result + Chr(Random(dictSize) + lngStepSize);
   until (Length(Result) = wordLen);
 end;

 procedure TForm1.Button2Click(Sender: TObject);
 begin
   //generate a password with 10 chars 
  Caption := RandomWord(33, 54, Random(12), 2);
 end;

Программа на Delphi для генерации случайных паролей!

Код состоит из двух функций:

  1. RandomPassword: генерирует случайное пароль заданной длины только с использованием строчных и заглавных букв.
  2. RandomWord: генерирует случайное слово заданной длины из словаря (в этом случае, ASCII-набора символов).

Давайте разбить код:

Функция RandomPassword:

  • Инициализирует переменную str строкой, содержащей все возможные символы (строчные и заглавные буквы).
  • Использует Randomize для посева генератора случайных чисел.
  • Петляет до тех пор, пока сгенерированное пароль не достигнет заданной длины (PLen) путем добавления случайных символов из str.
  • Возвращает сгенерированное пароль.

Событийный обработчик TForm1.Button1Click:

  • Вызывает функцию RandomPassword(10) для генерации 10-символьного пароля и присваивает его свойству Label1.Caption.

Функция RandomWord:

  • Принимает четыре параметра:
    • dictSize: размер словаря (в этом случае, 33-126, что является диапазоном ASCII-символов).
    • lngStepSize: смещение для случайного выбора символа.
    • wordLen: желаемая длина сгенерированного слова.
    • minWordLen: минимальная допустимая длина.
  • Если wordLen меньше minWordLen, то устанавливает wordLen в minWordLen.
  • Петляет до тех пор, пока сгенерированное слово не достигнет заданной длины (wordLen) путем добавления случайных символов из словаря (используя Chr(Random(dictSize) + lngStepSize)).
  • Возвращает сгенерированное слово.

Событийный обработчик TForm1.Button2Click:

  • Вызывает функцию RandomWord(33, 54, Random(12), 2) для генерации пароля длиной от 2 до 12 символов (включительно). Размер словаря установлен в 33 (диапазон ASCII-символов).

Некоторые предложения:

  1. Рассмотрите использование более безопасного генератора случайных чисел, например, компонента TIdRandom из библиотеки Delphi Indy.
  2. Для лучшей безопасности вы можете использовать комбинацию наборов символов (например, алфавитно-цифровые и специальные символы).
  3. Для улучшения производительности можно использовать буфер для хранения сгенерированного пароля вместо конкатенации строк в каждом шаге.

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

В статье описывается генерация случайных паролей на языке Pascal с использованием функции RandomPassword, которая создает строку из случайно выбранных символов алфавита, а также функция RandomWord, позволяющая生成 случайные слова заданной длины.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: Пароли ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:56:24/0.0034680366516113/0