Protect Forma jelszó - Delphi és a hacker - article Delphi - Személyes oldal

Protect Forma jelszó

Itt a második alkalmazás szentelt a probléma védelmi forma a jelszót. Mivel ez egy ilyen érdek, most próbálja megérteni az alapokat az ilyen védelmet. Nézzük megvitassák, hogyan fogjuk csinálni. Logikus, hogy futtatása előtt a formában, hogy meg akarjuk védeni, meg kell kérni a felhasználótól a jelszót (akkor természetesen, és a kettő kombinációja felhasználói név - jelszó, de figyelembe vesszük a példát csak jelszóval), és összehasonlítani a megadott érték bizonyos fenntartva a programban (tárolható mind kifejezetten és titkosított). Ha az értékek megegyeznek, akkor megnyílik a szükséges űrlapot, vagy töltse ki a teljes alkalmazás.

Térjünk most rá közvetlenül formálni a fejlődés egy jelszót. Miközben dolgozunk semmit, és nem kell, hogy: a legegyszerűbb változata ez a forma Delphi kellékek. Be kell, hogy válassza ki a menüpontot a Fájl -> Új párbeszédablak, válassza ki a fület párbeszédablakok, majd a Jelszó Dialog és kattintson az OK gombra. A képernyőn megjelenik kész formában jelszó kérelmet a név PasswordDlg.

Ebben a formában, nem lesz két gomb, OK és Cancel, egy szöveg beviteli mező nevét a jelszó jelszó, Label1 címke, amely azt mondja beírása. Cserélje ingatlan Caption Label1 címke kellemesebb szem magyar „Enter Password”. Továbbá, a képaláírás -nak maga a forma a „Jelszó kérése”, például.

Ügyeljen arra, hogy a beviteli mező PasswordChar ingatlan Edit * (csillag) - ez azt jelenti, hogy amikor belép az összes karakter lesz csillag helyettesíti.

Gondoskodnunk kell arról, hogy a jelszó igénylőlapot jelenik meg a képernyőn, mielőtt a fő formája. Ez azért történik így. Az eseménykezelő a fő formája OnShow kell írni a kódot, mint ez:

Ez a kód fut a jelszó igénylőlapot (PasswordDlg), mielőtt a fő. És elérhetővé teszi az alapvető forma, a forma zárása előtt jelszókéréskor. Most a program futtatásához, a fordító megkérdezi, hogy el akarja adni a Használat, a modul a második forma, persze, van, hogy válaszoljon, amit akarsz!

Ezután a következőképpen kell eljárni. A jelszó lesz tárolva, állandó alkalmazás. Amikor belép a helyes jelszó megnyílik a fő formája, és befejezzük a most elkezdett alkalmazás, ha rossz jelszót ad meg, akkor nyomja meg a Mégse gombot, és egyéb kísérletek, hogy lezárja a vizsgálatot formában.

Ehhez levelet kezelőjét OnFormCloseQuery eseményeket az igénylőlapot. Itt fogjuk össze a tartalmát a beviteli sorban a mi állandó jelszót, amely kerül be ugyanazon kezelő. Így kiderül az alábbi kódot:

eljárás TPasswordDlg.FormCloseQuery (Sender: TObject;
var CanClose: logikai érték);
const pass = 'Wellcome'; // a praol
kezdődik
ha Password.Text = át, majd CanClose: = true
mást Application.Terminate;
végén;

Így valósul meg a legegyszerűbb módja, hogy megvédjük formákat. Ha azt szeretnénk, hogy hasonlítsa össze a jelszó kis-és nagybetűket, meg kell alakítani mind húrok például kisbetűvel. Ehhez meg kell változtatni, csak egy sort:

ha Password.Text = át, majd CanClose: = true

kell helyettesíteni:

ha kisbetűs (Password.Text) = kisbetűs (pass), majd CanClose: = true

Most megpróbáljuk megvédeni az alakja egy jelszót, ami lesz titkosított formában tárolja. A jelszó titkosításához a legegyszerűbb módon - Xor. Ehhez levelet funkció:

működni TPasswordDlg.xortext (szöveg: string): string;
var kulcs, longkey. string;
i. integer;
toto: char;
kezdődik
kulcs: = 'da'; // a kulcs
i: = 0 (hosszúság (szöveg) div hossza (kulcs)) do
longkey: = longkey + gombot;
i: = 1-től hossz (text) nem kezdődik
toto: = CHR ((ORD (szöveg [i]) XOR ORD (longkey [i])));
Eredmény: = eredmény + toto;
végén;
végén;

Keresztül a neve a függvény visszatérési titkosított karakterláncot továbbít a paraméter szöveg. Ne felejtsük el, hogy állapítsa meg ezt a funkciót a részben nyilvános:

nyilvános

függvény xortext (szöveg: string): string;

Például, mi fog történni, ha ezt az eljárást titkosítja a „Welkom”:

Most az eseménykezelő onFormCloseQuery ismertetett első példában egy ilyen:

eljárás TPasswordDlg.FormCloseQuery (Sender: TObject;
var CanClose: logikai érték);
var át: string;
kezdődik
pass: = xortext ( 'Wellcome');

ha xortext (Password.Text) = át, majd CanClose: = true
mást Application.Terminate;
végén;

Mint látható, megváltozott egy kicsit, és most a jelszó titkosított formában tárolható például néhány fájlt. Így védi a forma :)

loap adja kakoynit marker, hogy a jelszó megadása. Például, van egy címke tulajdonság, hogy valóban nem hordoz hasznos információt.

helyett a „PasswordDlg.showmodal”; írni valami ilyesmit

„Ha tag = 0, akkor
kezdődik
PasswordDlg.showmodal;
Inc (TAG);
end; "

ez végrehajtásának biztosítására ezt a kódot csak edinazhdy az első rajz a fő formája. Következő nem nevezhető, amíg meg nem szándékosan nem változik Tag vissza nullára.