Experți Delphi, modalități de salvare și încărcare a parametrilor

Metode pentru salvarea și încărcarea parametrilor software. Avantajele și dezavantajele lor. Implementarea echipamentului de protecție.

În acest articol vom vorbi despre modalități de salvare și încărcare a parametrilor software. Din experiența mea personală, pot spune cu fermitate că acest lucru nu este atât de simplu, așa cum pare și pentru mulți. După cum ați observat deja, produsele software de mari dimensiuni utilizează numai registrul sistemului pentru a-și păstra parametrii. În schimb, dezvoltatorii de software, ca aparținând unui Freeware, selectați fișierele de configurare cu extensia „INI“ (denumit în continuare „.ini files“). De ce este cazul? Vom analiza mai detaliat aceste două metode, precum și despre implementarea anumitor instrumente de protecție pentru fișiere ini.







Registrul sistemului este unul dintre cele mai fiabile, dar în nici un caz cel mai sigur mod de stocare a parametrilor. Datele din acesta sunt aranjate într-o structură ierarhică, ceea ce ușurează găsirea partiției dorite, dar crește riscul de ștergere a datelor. Riscul de a pierde date în registru, cu excepția acțiunilor neatent ale utilizatorilor înșiși, poate fi o funcționare defectuoasă în sistemul de operare Microsoft Windows. Dar aceasta este o altă poveste.

Pentru a lucra cu registrul de sistem în Borland Delphi oferă un modul Registry, care conține clasa TRegistry.

Luați în considerare principiile date de economisire și de încărcare folosind registru, un mic exemplu, care va conține două GetCaption și procedura SaveCaption.

Merită menționat alte două proceduri ale modulului Registry: GetKeyNames și GetValueNames. Ele vă permit să scanați registrul ca și directoarele obișnuite. Când deschideți o cheie, specificați calea de căutare inițială, iar apoi procedura GetKeyNames creează o listă de TStrings tip și scrie numele tuturor cheile găsite și procedura GetValueNames este o listă cu numele parametrilor care sunt în modul specificat.

Înainte de apariția sistemelor de operare pe 32 de biți, utilizate numai fișierele de configurare cu extensia „INI“ (denumit în .ini fișiere) pentru stocarea parametrilor programului. Dar în curând, fișierele ini au fost uitate și au fost înlocuite de registrul de sistem. Dar există încă programe care utilizează în mod activ acest mod de stocare a parametrilor. Care sunt avantajele sale? Mai întâi de toate în stabilitate. Spre deosebire de registrul sistemului, în cazul în care sistemul de operare nu reușește cu ini-fișierul, nu se întâmplă nimic, dacă nu se află în directorul sistemului. Merită să ne amintim că ini-fișierul trebuie să fie în același director ca și programul. În afară de stabilitate, un avantaj important fisierul .ini este mobilitatea codului, după cum puteți vedea, uita la exemplul de mai jos. În ceea ce privește neajunsurile, este ușor de eliminat. Ini-fișier - acesta este un fișier normal, care poate fi șters accidental.







Pentru a lucra cu ini-fișiere în modulul Borland Delphi, este furnizat IniFiles.

Principiile de funcționare a fișierelor Ini și a registrului de sistem sunt similare unul cu altul. Modificați programul anterior care a salvat și a modificat antetul de formular utilizând registrul sistemului.

După cum puteți vedea, în comparație cu programul anterior, există o scădere a codului programului. Da, și erorile atunci când lucrați cu ini-fișiere există, de asemenea, mult mai puțin decât cu registrul de sistem.

Și acum, să vorbim despre mijloacele de protecție. Sistemul de operare oferă posibilitatea de a închide accesul la anumite fișiere. Dar, din păcate, închiderea accesului durează numai în timp ce programul se execută. După închiderea programului, accesul va fi complet deschis. De exemplu, puteți restricționa accesul la un fișier inițial. Pentru a implementa această funcție, printre multe dintre funcțiile WinAPI există o funcție OpenFile. Să încercăm să scriem un program care să blocheze accesul la fișierul ini.

(Figura 1) Restricționarea accesului la fișierul Test.ini

Un cititor atent poate contesta faptul că nu are nici un rost în această apărare. După terminarea programului, utilizatorul poate schimba cu ușurință conținutul fișierului. Și va avea absolut dreptate. Prin urmare, trebuie să adăugați încă o caracteristică de securitate - codarea textului.

La sfârșitul programului, protecția este eliminată automat, iar apoi textul este criptat. La pornirea ulterioară a programului, fișierul este decriptat, iar protecția este deja pusă pe fișierul decriptat, blocând astfel accesul la acesta.

Ar trebui să luați serios standardele de criptare destul de serios. Cele mai simple metode sunt adesea cunoscute de mulți. Oricine utilizează un algoritm de criptare similar poate decripta cu ușurință fișierul criptat.

Am scris două proceduri simple pentru codificarea și decodificarea textului. Pe exemplul lor vom analiza activitatea programului nostru.

(Figura 2) Fișierul "Test.ini" este criptat

Aceasta este una dintre cele mai eficiente modalități de protecție. După cum puteți vedea, prin calitatea lor, fișierele ini sunt o modalitate mai sigură de stocare a datelor decât un registru de sistem. Este imposibil să blocați accesul la fișierele incluse în acesta. Procedura de criptare scrisă pot folosi atunci când se lucrează cu registrul de sistem, dar în orice moment, utilizatorul poate schimba cu ușurință date chiar criptate care pot duce la consecințe tragice.

Ar trebui să spunem câteva cuvinte despre algoritmii de codificare și decodare de text. Ca o indicație a faptului că fișierul a fost codificat cu ajutorul unui șir de text obișnuit „Crypted“, ceea ce corespunde unei csCryptHeader constante. Urmează la începutul fiecărei linii criptate. Înainte de criptare, determină lungimea liniei csCryptHeader apoi crește lungimea liniei viitoare, care este egală cu lungimea de siruri de caractere încifrate și lungimea liniei csCryptHeader. Mai mult, prin căutarea simplă, fiecare caracter al șirului criptat este înlocuit. Aceasta se face cu funcția Chr, care returnează caracterul corespunzător de la numărul generat de program. La înlocuirea caracterelor, este necesar să se țină cont de anumiți parametri pe care le determină operația logică. În exemplul nostru, în funcție de faptul dacă numărul secvenței unei linii este împărțit în două fără rest, sunt utilizați diferiți parametri, ceea ce complică decodificarea ulterioară a textului.

În cazul în care decriptarea textului determinată de lungimea efectivă a acesteia, care se realizează prin scăderea lungimii șirului decriptat linia csCryptHeader lungime. Pentru a determina fișierul este corupt sau nu, căutările de program pentru titlu, în acest exemplu, „Crypted“, în linia codificată, iar dacă acesta este absent, decodarea este oprită și se produce o eroare. Dacă totul este în ordine, atunci există o decriptare a textului, al cărui algoritm este complet opus algoritmului de criptare.

Deci, toate metodele incluse în articol au fost complet dezasamblate și stipulate. Alegerea este a ta. Încercați metodele descrise în acest articol în practica dvs. Improvizați, încercând să creați ceva perfect, iar decizia de a alege între registrul de sistem și fișierele ini va veni la dvs.







Articole similare

Trimiteți-le prietenilor: