Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Генератор паролей! [D5, D6, Win95/98]


Socol ©   (2002-02-07 07:31:00) 

Здраствуйте!
Помогите придумать гениратор паролей.
Придумал как сделать цефровой примерно так
edit1.text := IntToStr(StrToInt(edit1.text) + 1);
А можно сделать чтобы он перебирал цифры с буквами и просто буквы.
Спасибки всем кто подсказал!


Dimka Maslov   (2002-02-07 13:00:00) [1]

>Олег
...а потом мучаться упорно вспоминая комбинацию из 32 цифр.

>Sokol
Я пользуюсь таким методом


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;

function GetString(Chrs: TChrs): String;
var
i, C: Integer;
begin
Randomize;
C:=5+Random(8);
Result:="";
for i:=1 to C do Result:=Result+Chrs[1+Random(High(Chrs))];
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Shuffle(Chrs);
ShowMessage(GetString(Chrs));
end;



Олег Лаукарт   (2002-02-07 11:33:00) [2]

Вместо пароля можно использовать GUID
function CreatePassword : string;
var aGUID : TGUID;
begin
CreateGUID(aGUID);
Result := GUIDToString(aGUID);
end;


Sergy   (2002-02-07 11:06:00) [3]

to MBo

function RandomRange(const AFrom, ATo: Integer): Integer;

Description

RandomRange returns a random integer from the range that extends between AFrom and ATo (inclusive). RandomRange can handle negative ranges (where AFrom is greater than ATo).

To initialize the random number generator, add a single call Randomize or assign a value to the RandSeed variable before making any calls to RandomRange.


MBo   (2002-02-07 10:14:00) [4]

RandomRange ????


Sergy   (2002-02-07 10:10:00) [5]

Я бы сделал так:

var
pass, str :string;
i:integer;
begin
str:="qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890";
Pass:="";
Randomize;
for i:=1 to 8 do
Pass:=Pass+copy(str,(RandomRange(1,Length(str))),1);
end;


MBo   (2002-02-07 07:39:00) [6]

randomize;
edit1.text:="";
for i:=1 to 10 do begin
c:=chr(ord("0")+random(ord("z")-ord("0")));
if not (c in [":".."@"]) then
edit1.text:=edit1.text+c;
end;


Наверх

Титульная страница Поиск, карта сайта Написать письмо