Datenbank mit einem Passwort sichern

Anfängerfragen zum Programmieren mit PureBasic.
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Datenbank mit einem Passwort sichern

Beitrag 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
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
MLK
Beiträge: 267
Registriert: 01.11.2004 13:17
Wohnort: Hamburg

Beitrag von MLK »

nein.
Constant not found: #vk_shit
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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)
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
sobi
Beiträge: 170
Registriert: 05.02.2005 23:41
Wohnort: passau
Kontaktdaten:

Beitrag 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
Sorgen sind wie Blumen, wenn man sie nicht gießt, gehen sie ein.
Benutzeravatar
Purethom
Beiträge: 50
Registriert: 21.09.2004 05:41
Wohnort: Berlin

Beitrag 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
Benutzeravatar
Thorsten1867
Beiträge: 1360
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Beitrag 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
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Benutzeravatar
Purethom
Beiträge: 50
Registriert: 21.09.2004 05:41
Wohnort: Berlin

Beitrag von Purethom »

Hallo Torsten,
das ging ja turboschnell! Vielen Dank, so komme ich auf jeden Fall weiter.

Grüße sendet

PureThom
Antworten