Чем хакер отличается от юзера? Хакер подбирает пароль с третьего раза, а юзер набирает с пятого.
Вам понадобилось, чтобы Ваше приложение само создавало пароли ? Возможно данный способ Вам пригодится. Всё очень просто: пароль создаётся из символов, выбираемых случайным образом из таблицы.
Пароль создаётся из символов, содержащихся в таблице.
Внимание:
Длина пароля должна быть меньше, чем длина таблицы!
Запускаем генератор случайных чисел (только при старте приложения).
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// цикл для создания K символовbegin
X := Random(Y) + 1; // берём следующий случайный символ// проверяем присутствие этого символа в конечной строкеif (pos(StrTable[X], result) = 0) thenbegin
inc(N); // символ не найден
Result[N] := StrTable[X]; // теперь его сохраняемend;
end;
end;
Ну и обработчик нажатия кнопки будет выглядеть так:
procedure TForm1.Button1Click(Sender: TObject);
var
cPwd: string;
begin// вызываем функцию генерации пароля из 30 символов
cPwd := RandomPwd(30);
// ...end;
В статье описывается способ сгенерировать случайный пароль, используя таблицу символов и функцию Randomize, которая генерирует случайные числа.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS