PureZIP PureBasic Bibliothek fehlt

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

PureZIP PureBasic Bibliothek fehlt

Beitrag von marcelx »

Hallo,

ich wollte die PureZip Lib für mein Programm nutzen und habe von http://www.rsbasic.de/backups/
PureZIP_500.zip genommen und installiert.
Alle Datei sind in den PB-verzeichnis kopiert.
Beim kompilieren folgenden PB (aus http://purebasic.fr/german/viewtopic.php?f=16&t=10175) oder aus PB- Examples, bekomme ich die Meldung:
[COMPILER] PureBasic Bibliothek fehlt: Misc (benötigt von der 'PureZIP_LIB_230_CheckCRC' Bibliothek)

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
Zuletzt geändert von marcelx am 02.05.2017 18:58, insgesamt 1-mal geändert.
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Bisonte
Beiträge: 2430
Registriert: 01.04.2007 20:18

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von Bisonte »

also als allererstes funktioniert diese Userlib nur mit der 32Bit Variante von Purebasic und zweitens wird das wohl unter PB5.60 nicht mehr laufen,
da diese Lib nicht mehr kompatibel ist.

Einzige Möglichkeit ist es, die PB5.00 x86 zu installieren und die Userlib damit benutzen.

P.S. : Das Posting auf das Du verlinkst, ist von 2006. Also ist das schon recht lange her ;)
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von marcelx »

Danke für deine Infos.
Ich wollte Datenbank SQLite mit Passwort absichern.
Gibt sonst andere Möglichkeit?
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Bisonte
Beiträge: 2430
Registriert: 01.04.2007 20:18

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von Bisonte »

Das kommt ganz drauf an. Sinn macht es auf diese Art nicht. Die Datenbank wird ja entpackt, und liegt als temporäres File irgendwo auf
der Platte.

Mehr Sinn macht es, die Daten selbst zu verschlüsseln. Also im Sinne von : Nicht "KontoNummer 1234321" in die DB eintragen sondern
den verschlüsselten Wert.

PB bietet da diverse Möglichkeiten. Stichwort : AES.
PureBasic 6.10 LTS (Windows x86/x64) | Windows10 Pro x64 | Asus TUF X570 Gaming Plus | R9 5900X | 64GB RAM | GeForce RTX 3080 TI iChill X4 | HAF XF Evo | build by vannicom​​
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von marcelx »

Zur Begründung:
Ich fand die Lösung mit Password-geschützte ZIP-Datei als einfach zu realisieren.
Die Lösung mit geschützten Daten in der DB bedeutet bei jeden Zugriff Vers- und Entschlüsselung
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von Sicro »

marcelx hat geschrieben:Password-geschützte ZIP-Datei
Demzufolge ist dir die Sicherheit in dem Fall nicht sehr wichtig, korrekt? Bei der ZIP-Variante musst du nämlich die Datenbank erst einmal entpacken, damit du sie verwenden kannst, und die liegt dann irgendwo unverschlüsselt herum. Wenn dir das von der Sicherheit reicht, kannst du auch einfach eine XOR-Verschlüsselung durchführen und die entschlüsselte Datenbank im Temp-Verzeichnis (GetTemporaryDirectory() ) ablegen, die du nach dem Gebrauch wieder von dort löschst.
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von marcelx »

Gute Frage Sicro.
Was will ich:
Ich habe Daten in mehrere DB (SQLite) und möchte verhindern, dass Fremden Einsicht in diese Daten (per Editor oder SQL-software) bekommen.
Nach suchen in den Forum habe ich diese Lösung mit Password geschützte ZIP-Dateien gefunden.
Inzwischen suche Richtung AES (Tipps von Bisonte)
PB bietet da diverse Möglichkeiten. Stichwort : AES
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
Sicro
Beiträge: 955
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von Sicro »

Code: Alles auswählen

EnableExplicit

Structure ByteArray
  b.b[0]
EndStructure

Procedure.i XORFileWithPassword(SourceFilePath$, NewFilePath$, Password$)
  
  Protected *Password.ByteArray = @Password$
  Protected PasswordByteLength  = StringByteLength(Password$)
  Protected PasswordOffset
  Protected SourceFile, NewFile
  
  SourceFile = ReadFile(#PB_Any, SourceFilePath$)
  If Not SourceFile
    ProcedureReturn #False
  EndIf
  
  NewFile = CreateFile(#PB_Any, NewFilePath$)
  If Not NewFile
    CloseFile(SourceFile)
    ProcedureReturn #False
  EndIf
  
  While Not Eof(SourceFile)
    WriteByte(NewFile, ReadByte(SourceFile) ! *Password\b[PasswordOffset])
    PasswordOffset + 1
    If PasswordOffset = PasswordByteLength
      PasswordOffset = 0
    EndIf
  Wend
  
  CloseFile(SourceFile)
  CloseFile(NewFile)
  
  ProcedureReturn #True
  
EndProcedure

Define TestFilePath$ = GetTemporaryDirectory() + "Test.txt"

If Not CreateFile(0, TestFilePath$)
  Debug "Fehler: CreateFile()"
  End
EndIf
WriteStringN(0, "Das ist ein Beispieltext. Das ist ein Beispieltext. Das ist ein Beispieltext. Das ist ein Beispieltext.")
CloseFile(0)

; Verschlüsseln
XORFileWithPassword(TestFilePath$, TestFilePath$ + ".encrypted", "Mein Passwort")

; Originale Datei löschen
DeleteFile(TestFilePath$)

; Entschlüsseln
XORFileWithPassword(TestFilePath$ + ".encrypted", TestFilePath$, "Mein Passwort")

; Entschlüsselte Datei lesen
If ReadFile(0, TestFilePath$)
  Debug ReadString(0)
  CloseFile(0)
Else
  Debug "Fehler: ReadFile()"
EndIf
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von marcelx »

Danke Sicro,

ich werde es Montag gleich probieren.
Gruß
MarcelX
Win-10, PB 5.31 (Windows - x86)
Benutzeravatar
marcelx
Beiträge: 424
Registriert: 19.02.2010 20:19
Wohnort: Darmstadt

Re: PureZIP PureBasic Bibliothek fehlt

Beitrag von marcelx »

Hallo und danke für die Unterstützung.
Ich habe mich für die Lösung von Christian+ / SimpleAES http://purebasic.fr/german/viewtopic.ph ... 07#p309907 entschieden

Gruß
MarcelX

__________________________________________________
Domain angepasst
09.05.2017
RSBasic
Win-10, PB 5.31 (Windows - x86)
Antworten