Seite 1 von 1

Datenbank mit einem Passwort sichern

Verfasst: 04.10.2006 23:26
von sobi
Mit MySQL kann ich eine Datenbank mit einem Passwort leicht schützen. Jetzt interessiert mich, ob das auch bei SQLite geht?
LG - Simon

Verfasst: 04.10.2006 23:31
von MLK
nein.

Verfasst: 05.10.2006 15:01
von Thorsten1867
Ich verwende PureZip, um meine Datenbanken zu schützen:
- vor dem Öffnen wird sie entpackt (mit Passwort)
- beim Schließen gepackt (mit Passwort)

Verfasst: 05.10.2006 23:16
von sobi
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)
Danke Torsten, dass hört sich sehr gut und logisch an. - Finde ich eine klasse Lösung.
LG - Simon

Verfasst: 07.10.2006 13:11
von Purethom
Hallo Torsten,

tolle Idee, PureZIP zu verwenden. Ich allerdings habe echte Probleme die Syntax zu durchblicken. Mir würde ein Codeschnipsel sicherlich helfen, wie ich einen Text packe, mit einem Passwort versehe und diesen dann wieder entpacke. Genau so interressiert mich analog die Verwendung mit einer SQLite-Datenbank. Ich verwende die PB 4.0-Version von PureZIP.

Danke für eventuelle Hilfe sagt

PureThom

Verfasst: 07.10.2006 14:22
von Thorsten1867
Probiere es mal damit:

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

Verfasst: 07.10.2006 18:23
von Purethom
Hallo Torsten,
das ging ja turboschnell! Vielen Dank, so komme ich auf jeden Fall weiter.

Grüße sendet

PureThom