![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: Firedac
SQLite DB verschlüsseln
Hallo,
wenn ich das Beispiel der SQlite-Datenbankverschlüsselung richtig verstehe, wird bei einer bestehenden Datenbank per FDSQLiteSecurity1 nur das Passwort und der Verschlüsselungsalgorithmus gesetzt und damit ist die DB dann "von außen" nicht mehr lesbar... Nach dieser (einmaligen) Aktion wird dann mit der DB gearbeitet indem der FDConnection Passwort und Verschlüsselung beim Öffnen mitgegeben werden:
Delphi-Quellcode:
FDConnection1.Params.DriverID := 'SQLite';
FDConnection1.Params.Database := edtPath.Text; FDConnection1.Params.Values['Encrypt'] := cbMode.Items[cbMode.ItemIndex]; FDConnection1.Params.Password := edtPwd.Text; Ist das soweit richtig? Ciao Stefan |
AW: SQLite DB verschlüsseln
Yepp. ;-)
Kurze Antwort, aber so mache ich es auch. Wichtig ist nur, das Passwort dann gut genug zu verschlüsseln, sonst hast Du ggf. eine nach allen Regeln der Kunst z.B. mit AES256 verschlüsselte SQLite-DB, aber dennoch keinen guten Schutz, weil das Passwort irgendwo auftaucht, wo es das nicht sollte. |
AW: SQLite DB verschlüsseln
Danke, wieder ein Problem weniger :-)
Ciao Stefan |
AW: SQLite DB verschlüsseln
Eine Nachfrage hätte ich da noch:
Mit
Delphi-Quellcode:
bekomme ich ja den aktuellen Status der Datenbank, aber wenn ich vorher das Passwort setze bekomme ich Laufzeitfehler wenn die DB noch unverschlüsselt ist, setze ich das Passwort in FDSQLiteSecurity nicht und frage den Status ab bekomme ich einen Laufzeitfehler wenn die DB bereits verschlüsselt ist.
FDSQLiteSecurity.CheckEncryption;
Diese Fehler treten im Beispiel nicht auf! Ich erzeuge aber meine Komponenten zur Laufzeit und habe alle möglichen Properties des Beispiels kontrolliert, finde aber nicht die Stelle wo man die Exception verhindern kann! Hat hierzu noch jemand eine Idee? Ciao Stefan |
AW: SQLite DB verschlüsseln
Hatte ich am Anfang auch...
Problem war die Reihenfolge... Ich hab das hinbekommen - bin gerade nicht an meinem Rechner... Workaround... : Wenn die Datenbank verschlüsselt ist eine Datei BaseName.SCR anlegen... (Ohne Inhalt)
Delphi-Quellcode:
Ich schau aber gerne noch nach der "richtigen" Lösung.
if Fileexists(Basename+'.SCR') then...
Mavarik |
AW: SQLite DB verschlüsseln
Ja bitte schau mal!
Das mit der leeren Datei als Workaround habe ich nicht verstanden... Ciao Stefan Nachtrag: Jetzt habe ich es kapiert, ist die Datei (egal wie sie heißt) vorhanden, soll das Programm davon ausgehen dass die DB verschlüsselt ist? Funktioniert aber nur eingeschränkt! Wenn die DB z.B. gelöscht wird, wird sie beim ersten nächsten Zugriff wieder neu erst mal unverschlüsselt erstellt und die Kennzeichnungsdatei ist immer noch vorhanden...! |
AW: SQLite DB verschlüsseln
Zitat:
|
AW: SQLite DB verschlüsseln
Wenn da manuell was gelöscht wird hilft die Class-Methode auch nicht..
Ciao Stefan |
AW: SQLite DB verschlüsseln
![]() Funktion
Delphi-Quellcode:
gibt als Ergebniss
FireDAC.Phys.SQLite.TFDSQLiteSecurity.CheckEncryption
Zitat:
edit ![]() |
AW: SQLite DB verschlüsseln
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz