Dies ist die alte 4D Dokumentations-Website. Die neue und aktualisierte Dokumentation finden Sie unter developer.4d.com

Home

 
4D v20 R7
Encrypt data file

Encrypt data file 


 

Encrypt data file ( structurePath ; dataPath {; newPassPhrase | newDataKey {; archiveFolder {; curPassPhrase | curDataKey {; methodName}}}} ) -> Funktionsergebnis 
Parameter Typ   Beschreibung
structurePath  Text in Pfadname der Strukturdatei
dataPath  Text in Pfadname der Datendatei zum Verschlüsseln
newPassPhrase | newDataKey  Text, Objekt in Bei Ersetzen: Neue Passphrase (Text) oder neuer Verschlüsselungscode (Objekt)
archiveFolder  Text in Pfadname des Ordners zum Speichern der Originaldateien
curPassPhrase | curDataKey  Text, Objekt in Aktuelle Passphrase (Text) oder aktueller Verschlüsselungscode (Objekt)
methodName  Text in Name der 4D Callback Methode
Funktionsergebnis  Text in Kompletter Pfadname des Ordners, wo Originaldateien gespeichert sind.

Der Befehl Encrypt data file dient zum Verschlüsseln bzw. erneutem Verschlüsseln der Datendatei, angegeben im Parameter dataPath und dem Parameter structurePath zugeordnet. Er kann auch zum Entfernen der Verschlüsselung aus der Anwendung verwendet werden. Dieser Befehl verändert nicht die Originaldateien, er gibt den kompletten Pfadnamen des Ordners zurück, der zum Sichern der Original Datendatei angelegt wurde.

Hinweise:

  • Encrypt data file lässt sich nicht mit der aktuell geöffneten Datendatei verwenden.
  • Encrypt data file lässt sich nur in 4D im lokalen Modus oder in Serverprozeduren auf 4D Server ausführen. Die Datendatei zum Verschlüsseln muss zur Strukturdatei passen, die in structurePath angegeben ist.

Ausführen dieses Befehls verschlüsselt bzw. ändert die Verschlüsselung aller Tabellen der Anwendung, die auf verschlüsselbar gesetzt sind. Weitere Informationen dazu finden Sie im Abschnitt Verschlüsselbar des Handbuchs 4D Designmodus.

Warnung: Verschlüsseln einer Anwendung ist ein langwieriger Vorgang. Währenddessen erscheint ein Ablaufbalken, den der Benutzer unterbrechen kann. Beachten Sie, dass nach dem Verschlüsseln noch ein weiterer Schritt zum Komprimieren erfolgt.

Im Parameter structurePath können Sie einen leeren String übergeben oder den kompletten Pfadnamen der Strukturdatei, die der Datendatei zum Verschlüsseln zugewiesen ist. Diese Angabe wird für den Verschlüsselungsprozess benötigt. Übergeben Sie einen leeren String, erscheint das standardmäßige Dialogfenster zum Öffnen der Datei, so dass der Benutzer die dazugehörige Strukturdatei wählen kann. Andernfalls übergeben Sie einen kompletten Pfadnamen in der Syntax des jeweiligen Betriebssystems.

Im Parameter dataPath können Sie einen leeren String, einen Dateinamen oder einen kompletten Pfadnamen übergeben (in der Syntax des verwendeten Betriebssystems). Übergeben Sie einen leeren String, erscheint das standardmäßige Dialogfenster zum Öffnen der Datei, so dass der Benutzer die Datendatei zum Verschlüsseln wählen kann. Diese Datei muss zu Strukturdatei passen, die im Parameter structurePath angegeben ist. Übergeben Sie nur den Namen der Datendatei, sucht 4D danach auf derselben Ebene wie die Strukturdatei.

  • Beim ersten Verschlüsseln der Anwendung müssen Sie nur die Parameter newPassPhrase oder newDataKey übergeben (Die Parameter curPassPhrase oder curDataKey müssen nicht benutzt werden):
    • newPassPhrase: String zum Generieren des Verschlüsselungscode (SHA 256-bit)
    • newDataKey: Objekt (mit Eigenschaft encodedKey) mit dem neuen Datenschlüssel. Dieser Schlüssel muss zuvor mit dem Befehl New data key erstellt werden.

    Hinweis:
    Die newPassPhrase (oder newDataKey) wird nicht im 4D Schlüsselbund hinzugefügt.
  • Beim erneuten Verschlüsseln der Anwendung (die Anwendung ist z.B. schon verschlüsselt) müssen Sie sowohl die Parameter newPassPhrase (oder newDataKey), als auch die aktuelle Passphrase (bzw. den aktuellen Datenschlüssel) übergeben. Das ist zum Entschlüsseln der Anwendung vor dem erneuten Verschlüsseln notwendig. Dafür gibt es folgende Möglichkeiten:
    • Übergabe gültiger Parameter curPassPhrase (oder curDataKey) im Befehl Encrypt data file
    • im 4D Schlüsselbund
  • Zum Entfernen der Verschlüsselung aus allen Tabellen übergeben Sie in newPassPhrase (oder newDataKey) eine leere Passphrase oder einen Null Datenschlüssel. Die aktuelle Passphrase bzw. der Datenschlüssel müssen bereits vorhanden sein. Entschlüsselte Dateien werden in Ordnern mit Namen “Replaced files (Decrypting) YYYY-MM-DD HH-MM-SS”/"Decrypted files YYYY-MM-DD HH-MM-SS" generiert/kopiert.

Encrypt data file verändert nicht die Originaldateien. Sie werden im Ordner archiveFolder (falls übergeben) in einem speziellen Ordner abgelegt mit Namen Replaced files (Encrypting) YYYY-MM-DD HH-MM-SS oder Replaced files (Decrypting) YYYY-MM-DD HH-MM-SS, wobei YYYY-MM-DD HH-MM-SS Datum und Uhrzeit der Operation angibt. Zum Beispiel: "Replaced files (Encrypting) 2018-09-29 13-00-35". Die neu verschlüsselte bzw. entschlüsselte Datendatei ersetzt automatisch die Originaldatei. 

Haben Sie "" in archiveFolder definiert, erscheint ein Standarddialog zum Ordner öffnen, so dass der Benutzer den Speicherort für diesen Ordner angeben kann. Ohne archiveFolder werden die Originaldateien automatisch in einem Ordner mit Zeitstempel auf derselben Ebene wie die Strukturdatei abgespeichert.

Der Parameter method dient zum Setzen einer Callback-Methode, die während dem Verschlüsselungsprozess regelmäßig aufgerufen wird. Wenn Sie einen leeren String oder einen ungültigen Methodennamen übergeben, wird dieser Parameter ignoriert, d.h. es wird keine Methode aufgerufen. Beim Aufruf empfängt diese Methode, je nach dem auslösenden Ereignistyp, bis zu 5 Parameter (siehe unten). Es ist zwingend erforderlich, diese Parameter in der Methode zu deklarieren:

Ereignis$1 (Lange Ganzzahl)$2 (Lange Ganzzahl)$3 (Text)$4 (Lange Ganzzahl)$5 (Lange Ganzzahl)
Message10Ablaufmeldung (z.B. "Verschlüsseln von BLOBs in der Tabelle Dokumente")Ausführung in Prozent (z.B. 50)Reserviert
Encryption finished20Meldung OK (z.B. "Fertig")0Reserviert
Error30Fehlermeldung (z.B. "Problem mit Daten der Tabelle XX: kein Verschlüsselungscode vorhanden")0Reserviert
End of execution40"Fertig"0Reserviert
Warning(*)5ObjekttypFehlertextTabellen oder IndexnummerReserviert

(*) Wird beim Schritt zur Verifikation zurückgegeben (siehe Befehl VERIFY DATA FILE).

Zurückgegebener Wert

Aktueller Pfad des Zielordners mit den Originaldateien.

Eine Datendatei zum ersten Mal verschlüsseln:

 C_TEXT($folder;$passphrase)
 $passphrase:=Request("Enter the passphrase")
 If(OK=1)
  //Da die Datendatei nicht verschlüsselt ist, wird kein aktueller Schlüssel zur Verschlüsselung geliefert.
    $folder:=Encrypt data file(Structure file;"myData.4DD";$passphrase)
 End if

Eine verschlüsselte Datendatei erneut verschlüsseln (Passphrase verändern):

 C_TEXT($folder;$targetFolder;$passphrase;$newPassphrase)
 $passphrase:=Request("Enter the current passphrase")
 If(OK=1)
    $newPassphrase:=Request("Enter the new passphrase")
    If(OK=1)
       $targetFolder:=Get 4D folder(Database folder)+"Save"+Folder separator
  //Da die Datendatei verschlüsselt ist, muss der aktuelle Schlüssel zur Verschlüsselung geliefert werden
       $folder:=Encrypt data file(Structure file;"myData.4DD";$newPassphrase;$targetFolder;$passphrase)
    End if
 End if

Die Verschlüsselung einer Datei aufheben

 C_TEXT($folder;$targetFolder;$passphrase)
 $passphrase:=Request("Enter the passphrase")
 If(OK=1)
    $targetFolder:=Get 4D folder(Database folder)+"DecryptedData"+Folder separator
  //Die neue Passphrase wird als leerer String gesetzt, um alle Daten zu entschlüsseln
  //Die aktuelle Passphrase muss geliefert werden
    $folder:=Encrypt data file(Structure file;"myData.4DD";"";$targetFolder;$passphrase)
 End if

Eine verschlüsselte Datendatei mit dem aktuellen Schlüssel erneut verschlüsseln (zum Beispiel, wenn sich der Status verschlüsselbar für einige Tabellen geändert hat)

 C_TEXT($folder;$passPhrase)
 C_BOOLEAN($added)
 
 $passphrase:=Request("Enter the passphrase")
 If(OK=1)
    $added:=Register data key($passphrase//Der Datenschlüssel ist jetzt in der 4D Schlüsselkette
    $folder:=Encrypt data file(Structure file;"myData.4DD")
 End if



Siehe auch 

4D Blog - New 4D commands to work with encrypted data
Data file encryption status
Decrypt data BLOB
Encrypt data BLOB
New data key

 
EIGENSCHAFTEN 

Produkt: 4D
Thema: Datensicherheit
Nummer: 1610

 
SEITENINHALT 
 
GESCHICHTE 

Erstellt: 4D v17 R5

 
ARTIKELVERWENDUNG

4D Programmiersprache ( 4D v20 R7)