Как сгенерировать случайный пароль.
Автор: Kurt Mueller
Вам понадобилось,
чтобы Ваше приложение само создавало пароли ?
Возможно данный способ Вам пригодится. Всё очень
просто: пароль создаётся из символов, выбираемых
случайным образом из таблицы.
Совместимость: 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);
var
cPwd: string;
begin
// вызываем функцию генерации пароля из 30
символов
cPwd := RandomPwd(30);
// ...
end;
|