AutoIt3: folosind SQLite parolat


Am scris ieri, aici, cum putem combina AutoIt cu SQLite. Există o problemă neplăcută: baza de date (care, chiar dacă am include-o în executabil, în momentul rulării tot ar trebui să fie separat pe harddisk undeva) este susceptibilă la citire. Să zicem că avem o bază de date fie cu informaţii private, fie cu informaţii pe care ne-am muncit mult să le strângem şi nu ar fi frumos ca altcineva să ia DB-ul şi să îl refolosească. Ce facem atunci? SQLite, nativ, nu are suport pentru protejarea cu parolă. Mda… trist… M-am adresat forumului AutoIt şi în doar câteva ore am primit răspunsul salvator. System.Data.SQLite este un SQLite în esenţă, dar cu nişte lucruri în plus, printre care şi protecţie cu parolă.

imagine

Mai sus vedeţi baza de date agenda.db deschisă cu un editor text. Dincolo de nişte pătrăţele observăm text curat, citibil fără probleme. La codul de ieri trebuie să facem doar câteva simple modificări pentru ca să putem parola baza de date. În primul rând eliminăm linia cu #include <SQLite.dll.au3> şi în directorul cu fişierul programului nostru punem System.Data.SQLite.dll (de aici sau din fişierele acestor articole – vezi finalul, jos de tot). Apoi în cod mai schimbăm ceva: _SQLite_Startup ("") devine _SQLite_Startup ("System.Data.SQLite.dll"), pentru a folosi noul DLL, ce oferă suport pentru parole. Consultăm apoi documentaţia de aici de unde aflăm despre noi “comenzi” ce permit parolarea: pragma key=”parolanoastra”. După _SQLite_Open adăugăm atunci linie esenţială: _SQLite_Exec(-1, "pragma key = ‘…’"), evident în loc de puncte puncte punând acolo parola. Suplimentan, în loc să îi spun bazei de date agenda.db, i-am spus agenda.age (poate unii nu vor intui că e o bază de date… slabă şansă). Priviţi mai jos cum arată acum baza de date deschisă cu un editor text: mai puteţi citi ceva? Nu.

imagine

Şi uite aşa putem avea aplicaţii cu AutoIt3 care să folosească SQLite cu ceva ce nativ SQLite nu are: protecţie cu parolă. Este protecţia imbatabilă? Probabil nu. Dar pentru 99% dintre noi o astfel de protecţie face baza de date, separată de program, inutilă. Dacă tot am studiat problema, am scris o mică aplicaţie ce oferă, după calendarul romano-catolic, biografii de sfinţi, texte liturgice, rugăciuni şi meditaţii, pentru fiecare zi din 1 ianuarie până în 30 iunie 2010. Desigur, nu interesează pe 99% dintre cititorii CNet.ro, dar o găsiţi aici măcar pentru a vedea cum poate arăta o aplicaţie finisată (nu e făcută capodoperă, dar e 100% funcţională).

imagine

PS: Toate fişierele acestei serii de tutoriale sunt publice şi descărcabile de aici. Exemplul de aici este sqlite-agenda-criptata.au3, compilat în agenda2.exe (nu uitaţi, în directorul unde rulaţi agenda2.exe trebuie să puneţi şi System.Data.SQLite.dll, dat şi el la linkul anterior).


Apreciază articolul:

1 stea2 stea3 stea4 stea5 stea (3 evaluări, media: 5,00 din 5)
Loading...Loading...

0 comentarii


Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile necesare sunt marcate *