Zdrastwujtie programistyczni tawarisz :P
Piszę w ramach ćwiczeniowych aplikację, której rolą są działania CRUD (CREATE, READ, UPDATE i DELETE) na bazie danych zawierającej dane na temat nauczycieli akademickich.
Struktura zadania wygląda w ten sposób:
Pliki loginwindow.h i loginwindow.cpp odpowiadają za logowanie (pierwsza baza danych w programie zawierająca dane logowania), podczas gdy mainview zapewnia tabwidget, gdzie dla każdego page-a odpowiadają im znowu dane pliki create, read, update i delete (tutaj druga baza danych zapewniająca dla całego CRUD dane o nauczycielach).
guestLogin.txt jest do usunięcia, natomiast login.sqlite do baza danych z danymi do logowania, a teachers.sqlite to baza danych z nauczycielami akademickimi.
W programie są dwie bazy danych danych, które są otwierane i zamykane przez wywołanie dwóch poniższych funkcji:
bool connOpen(QSqlDatabase * myDatabase, QString path) // function is opening connection with database
{
(*myDatabase).setDatabaseName(path);
if((*myDatabase).open())
{
qDebug() << "Connected to database.";
return true;
}
else
{
qDebug() << "Failed to open the database!";
}
return false;
}
void connClose(QSqlDatabase * myDatabase) // function is closing connection with database
{
(*myDatabase).close();
(*myDatabase).removeDatabase(QSqlDatabase::defaultConnection);
}
Wszystko działa świetnie, lecz powstał nowy problem, którego z racji mojego braku doświadczenia z początku nie zauważyłem i zignorowałem, a teraz wyrósł do poziomu góry giganta.
Mianowicie to nie jest na obecną chwilę "najlepsza sytuacja", gdy przy logowaniu do apki użytkownik jest w stanie bez znajomości danych swojego loginu "z marszu" odczytać dane swoje logowania bezpośrednio je odczytując z pliku .sqlite (dzięki choćby takiemu programowi jak SQLiteStudio) albo uzyskać wszystkie informacje o nauczycielach z drugiej kolei bazie danych zawierających informacje na temat nauczycieli akademickich.
Zwracam się do was z prośbą... co teraz? Znalazłem informacje na temat sqlcipher i jakiś film jak tworzyć "enkryptowane" bazy danych z jego pomocą, ale nie wiem czy to krok w dobrą stronę i zarazem czy jest on jedyny.
Z góry dzięki za wszelkie odpowiedzi. :)