Советы по Delphi


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


The_Sprite советует:

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

Совместимость: 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;

[001379]



Содержание раздела