Подписаться на RSS рассылку
Главная » Статьи по Delphi » Разное » Генератор случайных паролей

Генератор случайных паролей

Автор: skycar

Простой генератор случайных паролей можно создать с помощью функции Chr(N) и случайного выбора N, где N - порядковый номер символа.

В секцию uses добавьте модуль Math, разместите на форме TEdit и кнопку TButton.

Теперь пишем код обработчика нажатия кнопки

procedure TForm1.Button1Click(Sender: TObject);
begin
Randomize;
Edit1.Clear;
Edit1.Text := chr(RandomRange(97, 122))+chr(RandomRange(97, 122))+
chr(RandomRange(97, 122))+chr(RandomRange(97, 122))+
chr(RandomRange(48, 57))+chr(RandomRange(65, 90))+
chr(RandomRange(97, 122))+chr(RandomRange(97, 122));
end;

Здесь в TEdit добавляются символы по случайным порядковым номерам. Такой пароль получается надёжным и криптостойким.

Просмотров: 7775

Обсудить на форуме

0   Спам
(13.04.2012)
2. Bo0oM
Так ещё лучше

function RndString(Len:integer):string;
var
i:integer;
begin
randomize;
for i:=1 to Len do
Result:=Result+Chr($30+Random($4D)); //0 - }
end;

Символы выбираются из диапазона 0x30 - 0x7d (0 - }) ASCII таблицы.

0   Спам
(22.09.2010)
1. Delphi
Мой метод проще всех будет

procedure TForm1.Button1Click(Sender: TObject);
var
S:String;
i,iloop:integer;
begin
edit1.Text:='';
S:='QWERTYUIOPASDFGHJKLZXCVBNM123456789qwertyuasdfghjklzxcvbnm';
For i:=0 To 10 do // 10 digits encryption key
begin
Randomize;
iloop:=Random(length(s));
Edit1.Text:=Edit1.Text+S[ILOOP];
end;
end;

Ответ: Ваш код написан немного безграмотно.
Во первых, зачем 10 раз инициализировать генератор случайных чисел?
Во вторых Random(length(s)) возвратит число от 0 до длинны строки минус 1. В результате чего, может выпасть S[0] - этого впринципе не существует, так как строка начинается с 1. А последний символ никогда не будет задействован.
Ну и в третьих, я бы сначала писал результат в переменную, а затем все разом вывел.


Имя *:
Email:


Код *:

Copyright © 2008-2016 Программирование на Delphi для начинающих и не только

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации

Хостинг от uCoz

Автор проекта: Борисов Сергей

e-mail: save-x@yandex.ru

Связь с администрацией сайта