Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.04;
Скачать: CL | DM;

Вниз

Генератор паролей   Найти похожие ветки 

 
Ольга   (2002-01-16 14:28) [0]

Я написала программку по генерации паролей (с условиями: 1. Количество символов от 1 до 256; 2. Не больше 2 заглавных или строчных букв подряд; 3. Добавление русских букв и знаков препинания).
Ну так вот... Мне очень интересно, есть что-нибудь подобное, если есть, то можно взглянуть? Спасибо.


 
Фэ   (2002-01-16 14:55) [1]

Вот что-то похожее.

function RandomRangeString_(Lmin,Lmax: Integer; Up:Boolean): String;
var
x,sl: integer;
begin
result := sNULL;
sl := RandomInteger_(Lmin,Lmax); {длина строки от Lmin до Lmax}
while Length(result) <= sl do begin
x := Byte(RandomInteger_(32, 255)); {общий диапазон символов}
if chr(x) in LatChars then {фильтр}
result := result + chr(x);
end;
if Length(result) > Lmax then
result := Copy(result, 1, Lmax);
if Up then Result := AnsiUpperCase(Result);
end;

function RandomInteger_(iLow, iHigh: Integer): Integer;
begin
result := Trunc(Random(iHigh - iLow)) + iLow;
end;


 
Стас   (2002-01-17 10:04) [2]

Я замылил тебе свой вариант решения (под D5).


 
Dimka Maslov   (2002-01-17 10:28) [3]

function GeneratePassword(Len: Integer): string;

type
TChrs = array [1..62] of Char;

var
Chrs: TChrs = "QWERTYUIOPASDFGHJKLZXCVBNM1234567890mnbvcxzasdfghjklpoiuytrewq";

procedure Shuffle(var Chrs: TChrs);
var
i, C: Integer;
Ch: Char;
Index1, Index2: Integer;
begin
C:=High(Chrs)*High(Chrs);
Randomize;
for i:=1 to C do begin
Index1:=1+Random(High(Chrs));
Index2:=1+Random(High(Chrs));
Ch:=Chrs[Index1];
Chrs[Index1]:=Chrs[Index2];
Chrs[Index2]:=Ch;
end;
end;

var
i: Integer;
begin
Randomize;
Result:="";
for i:=1 to Len do Result:=Result+Chrs[1+Random(High(Chrs))];
end;


 
Dimka Maslov   (2002-01-17 10:32) [4]

И ещё. Перед циклом for i:=1 to Len... нужно написать Shuffle(Chrs)



Страницы: 1 вся ветка

Текущий архив: 2002.02.04;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
3-8779
Kirill
2001-12-29 15:04
2002.02.04
Поиск в ADO Table


1-8841
xmapa
2002-01-16 08:49
2002.02.04
Quick Report: группировка


1-8857
Lepard
2002-01-21 12:52
2002.02.04
Координаты мыши


14-8978
tovSuhov
2001-12-13 09:45
2002.02.04
А вот такой анекдот...


1-8828
Dailagig
2002-01-20 12:11
2002.02.04
Help ME