Datenbank mit einem Passwort sichern
Verfasst: 04.10.2006 23:26
Mit MySQL kann ich eine Datenbank mit einem Passwort leicht schützen. Jetzt interessiert mich, ob das auch bei SQLite geht?
LG - Simon
LG - Simon
Das deutsche PureBasic-Forum
https://www.purebasic.fr/german/
Danke Torsten, dass hört sich sehr gut und logisch an. - Finde ich eine klasse Lösung.Thorsten1867 hat geschrieben:Ich verwende PureZip, um meine Datenbanken zu schützen:
- vor dem Öffnen wird sie entpackt (mit Passwort)
- beim Schließen gepackt (mit Passwort)
Code: Alles auswählen
Procedure.b OpenDB(File$, passwort$) ; verschlüsselte Datei entpacken
FileNoExt$ = StringField(File$,1,".") ; Dateiname ohne Extension
DBDir$ = GetPathPart(File$) ; Verzeichnis der Datenbank
PackFile$ = FileNoExt$ + ".zip" ; Name des Archives
PureZIP_SetArchivePassword(passwort$)
If FileSize(File$) > 0 ;{ Datei schon entpackt
ProcedureReturn #True ; Entpacken nicht nötig
ElseIf FileSize(File$) = 0 ; Nulldatei z.B. wg. falschem Passwort
DeleteFile(File$) ; ungültige Datei entfernen
EndIf ;}
FileNumberInArchive.l = PureZIP_FindFile(PackFile$, GetFilePart(File$), #False)
If FileNumberInArchive <> -1 ; Datei im Archiv gefunden
If PureZIP_ExtractFile(PackFile$, FileNumberInArchive, DBDir$, #False) = #False ; Ins Verzeichnis DBDir$ entpacken
DeleteFile(DBDir$+GetFilePart(File$)) ; Datei (0 Byte) löschen, wenn Passwort falsch war
MessageRequester(" Datenbank","Datei konnte nicht geöffnet werden. Passwort falsch?"+Chr(10)+"("+GetFilePart(File$)+")", #MB_OK|#MB_ICONWARNING)
ProcedureReturn #False
EndIf
Else
MessageRequester(" Datenbank","Datei '"+GetFilePart(File$)+"' wurde nicht gefunden."+Chr(10)+"("+GetFilePart(PackFile$)+")", #MB_OK|#MB_ICONWARNING)
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure
Procedure.b CloseDB(File$, passwort$) ; Datei packen
FileNoExt$ = StringField(File$,1,".") ; Dateiname ohne Extension
PackFile$ = FileNoExt$ + ".zip"
If FileSize(File$) > 0 ; zu packende Datei existiert und keine 0 Byte-Datei
If FileSize(PackFile$) <> -1
DeleteFile(FileNoExt$+".zip") ; altes Archiv entfernen, wenn vorhanden
EndIf
PureZIP_SetArchivePassword(passwort$)
If PureZIP_AddFile(PackFile$, File$, #PureZIP_DontStorePath)
If PureZIP_FindFile(FileNoExt$+".zip", GetFilePart(File$), #False) <> -1 ; Test ob Datei im Archiv
DeleteFile(File$) ; Löschen der Datei
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
Else
ProcedureReturn #False
EndIf
ProcedureReturn #True
EndProcedure