Sajátos jelszó generátor (random karakter) Delphi
Ez a funkció, csomagolva egy felhasználóbarát felület, én veletek vagyok, és megosztja. Ön is használja a kapott eredményeket a program generál jelszavakat, mint például a szociális szolgáltatásokat. hálózatok vagy fórumok, ezáltal szabaddá magukat a folyamatos puzzle feltalálás összetett jelszavakat vagy egyéb célra. függvény algoritmus nagyon egyszerű és könnyen érthető, könnyen átírni egy másik nyelvre, amit a saját, mint a PHP vagy js, ami növeli alkalmassága webhelyére. Tehát kezdjük!
Megnyitjuk örökké élő, Delphi környezetben. Írni Példaként fogom használni Delphi 7, akkor is használhatja egy újabb változat, a példa működik bármilyen környezetben. Hozzon létre egy új projektet egy űrlapot, és tegye a következő alkatrészeket formában: 4. CheckBox'a egy gomb gomb szerkesztése Van egy, egy címke és egy SpinEdit (belépési számok).
A nevét az alkatrészek hagyja meg az alapértelmezett, de akkor azokat hívni, de a jövőben nem összezavarodnak. De a képaláírás tulajdon, a felhasználók számára, hogy megértsék pereklyuchaeteley:
- CheckBox1 - «kisbetűkkel";
- CheckBox2 - «nagybetűs";
- CheckBox3 - «számok";
- CheckBox4 - «Special. szimbólumok „;
- Button1 - «generátor»;
- Label1 - «a string hossza.”
Edit1 - szöveg fog tenni az üres ingatlanok, míg az alkatrész SpinEdit1 Value tulajdonság kerül egyenlő 20 (a karakterek száma, a létrehozott string alapértelmezés szerint). Továbbá, korlátozza a minimális érték = 2 tartományban MINVALUE és MAXVALUE = 100, azaz A vonal legyen legalább 2 karakter, és nem több, mint 100.
CheckBox „s - a logikai kapcsolók jelezni fogja a RandString funkciót. Milyen karakterek venni a létrehozott string.
SpinEdit1 - ahogy a neve is sejteti, a hossza a generált karakterlánc.
Nos Edit1 elfogadni az eredményt.
Helyezzük az összes összetevőt egy formája körülbelül az alábbiak szerint, vagy saját belátása szerint.

Nos, minden előkészítő lépések elvégzése lépni a mókára, hogy írásban kódot.
A modulban az alábbi kulcs szó végrehajtása írunk a következő függvény kódja:
függvény Randstring (Len: szó; LCase, UpCase, Digit, SpecSymb: logikai): string;
const symLCase = 'abcdefghijklmnopqrstuvwxyz'; // készlet kisbetűkkel
symUCase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZut'; // készlet nagybetűk
'0123456789' symNum =; // számsor
symSpecSymb = „[] <>. „: - + #„; // sor speciális karaktereket.
// létrehoz egy közös symb összhangban jelölt LCase funkcióparamétert, UpCase, Digit, SpecSymb
ha LCase majd symb: = symb + symLCase; // magában foglalja egy sor kisbetűk
ha UpCase majd symb: = symb + symUCase; // Ide egy sor nagybetűk
ha Digit majd symb: = symb + symNum; // tartalmaz egy sor olyan számok
ha SpecSymb majd symb: = symb + symSpecSymb; // tartalmaz egy speciális készlet. szimbólumok
ha symb = '' majd symb: = symLCase; // ellenőrizzük, hogy a beállított üres marad, az alapértelmezett közé kisbetűk
név: = '';
i: = 1 Len do
// random karakterek egy symb
// ciklus ismétlődik meg a Len paraméter alkalommal
// függvény közötti véletlen egész szám 0 és symb készlet mérete
név: = név + symb [random (hossz (symb)) + 1];
Elvileg ez az! Továbbra is csak a kiváltó októl és az eredmény eljussanak a felhasználóhoz. Ehhez kattintson a gombra, generátor kétszer az esemény létrehozása Kattintson, és adjuk hozzá a következő kódot:
Edit1.Text: = RandString (SpinEdit1.Value, CheckBox1.Checked, CheckBox2.Checked, CheckBox3.Checked, CheckBox4.Checked);
Azok számára, akiknek problémájuk, hozok a teljes kódot a modul:
felhasználások
Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika, vezérlők, Forms,
Dialogs, StdCtrls, Centrifugálás;
függvény Randstring (Len: szó; LCase, UpCase, Digit, SpecSymb: logikai): string;
const symLCase = 'abcdefghijklmnopqrstuvwxyz'; // készlet kisbetűkkel
symUCase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZut'; // készlet nagybetűk
'0123456789' symNum =; // számsor
symSpecSymb = „[] <>. „: - + #„; // sor speciális karaktereket.
// létrehoz egy közös symb összhangban jelölt LCase funkcióparamétert, UpCase, Digit, SpecSymb
ha LCase majd symb: = symb + symLCase; // magában foglalja egy sor kisbetűk
ha UpCase majd symb: = symb + symUCase; // Ide egy sor nagybetűk
ha Digit majd symb: = symb + symNum; // tartalmaz egy sor olyan számok
ha SpecSymb majd symb: = symb + symSpecSymb; // tartalmaz egy speciális készlet. szimbólumok
ha symb = '' majd symb: = symLCase; // ellenőrizzük, hogy a beállított üres marad, az alapértelmezett közé kisbetűk
név: = '';
i: = 1 Len do
// random karakterek egy symb
// ciklus ismétlődik meg a Len paraméter alkalommal
// függvény közötti véletlen egész szám 0 és symb készlet mérete
név: = név + symb [random (hossz (symb)) + 1];
eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
// állítsa be a paramétereket Randstring funkciót, és kiadja az eredményt Edit1
Edit1.Text: = Randstring (SpinEdit1.Value, // a hossza a generált vonal
CheckBox1.Checked, // ha jelölve van, akkor viszont egy sor kisbetűt
CheckBox2.Checked, // ha jelölve van, akkor viszont egy sor nagybetűk
CheckBox3.Checked, // ha jelölve van, akkor viszont egy számsor
CheckBox4.Checked); // ha be van jelölve, akkor viszont a rendkívüli. szimbólumok
végén;
Ez minden! Fordítsd le és próbálja meg.
Egyszer volt egy jelszó generátor, amely aztán el kellett bevezetni az embereket. Hamarosan világossá vált, hogy a jelszó nem tudja használni a 0 számot, és a nagybetűs O és kisbetűs latin l (ell), és a cím I (i), mert sok betűk túl sok egyaránt, és a képernyőn, illetve nyomtatásban (például, így például, itt). Az emberek zavaros, dühös, és kezdték hívni a technikai támogatást. És mégis, a kisbetűs l (ell) egy serif font (például Times New Roman) megkülönböztethetetlen egységét. Tehát egy listát a rendelkezésre álló karakterek, és volt, hogy dobja. Összesen fennmaradó 25 kis-és nagybetűket és 8 számjegy