Neue 4D Befehle für die Arbeit mit verschlüsselten Daten

Automatisch übersetzt von Deepl

In einem früheren Beitrag haben wir beschrieben, wie man mit der Verschlüsselung von Datendateien beginnt. Jetzt werden wir eine weitere Möglichkeit besprechen, mit verschlüsselten Datendateien zu arbeiten: Die neuen 4D Befehle. Diese Befehle sind so konzipiert, dass sie die meisten Verschlüsselungsanforderungen unterstützen und es Ihnen ermöglichen, Ihren Kunden eine verschlüsselte Lösung zu liefern.

HDI: Beispiel für Datenverschlüsselungsbefehle

Verschlüsseln einer Datendatei

Zusätzlich zum MSC können Sie die Verschlüsselung mit dem Encrypt data file() Befehl:

C_TEXT($folder;$passphrase)
$passphrase :=Request("Geben Sie die Passphrase ein")
if (OK=1)
$folder :=Encrypt data file("Macintosh HD:Benutzer:Strukturen:meineDatenbank.4DB";
"Macintosh HD:Benutzer:Daten:meineDaten.4DD";$passphrase)
// myData.4DD is not opened
End if

Bereitstellung des Datenverschlüsselungsschlüssels über die Sprache

Zusätzlich zur automatischen Erkennung von Datenverschlüsselungsschlüsseln in 4D steht der neue provideDataKey() Befehl im ds Objekt zur Verfügung, um den Datenverschlüsselungsschlüssel für eine geöffnete Datendatei bereitzustellen. Dies ist nützlich, wenn Sie Ihre eigene Benutzeroberfläche erstellen, um den Zugriff auf Ihre verschlüsselten Daten zu kontrollieren.

Während ds eine ORDA-Funktion ist, ist der provideDataKey() Befehl ist sowohl für ORDA als auch für klassischen 4D Code gültig.

C_OBJECT($keyStatus)
C_TEXT ($passphrase)
$passphrase :=Request("Enter the passphrase")
if (OK=1)
$keyStatus :=ds.provideDataKey($passphrase)
If ($keyStatus.success)
ALERT ("You have provided a valid encryption key")
Else
ALERT ("You have provided an invalid encryption key. Der Zugriff auf verschlüsselte Daten wird verweigert.")
End if
End if

ABFRAGE DES VERSCHLÜSSELUNGSSTATUS

Der neue encryptionStatus() Befehl ist auch im ds Objekt. Er prüft, ob die geöffnete Datendatei verschlüsselt ist oder nicht und ob ein gültiger Datenverschlüsselungsschlüssel angegeben wurde.

C_OBJECT($status;$provideStatus)
C_TEXT ($passphrase)
$status :=ds.encryptionStatus()
Case of
: (Not($status.isEncrypted))
ALERT("Daten sind nicht verschlüsselt")
: (($status.isEncrypted) & (Not($status.keyProvided)))
ALERT ("Data is encrypted and you have not provided a valid encryption key. Der Zugriff auf die verschlüsselten Daten wird verweigert.")
: (($status.isEncrypted) & ($status.keyProvided))
ALERT("Die Daten sind verschlüsselt und der Verschlüsselungscode wurde bereits bereitgestellt. Der Zugriff auf die verschlüsselten Daten wird gewährt.")
End case

ANDERE KOMMANDOS

Status der ungeöffneten DATA-Datei

Der Befehl Data file encryption status() Befehl gibt den Verschlüsselungsstatus einer angegebenen, ungeöffneten Datendatei zurück. So können Sie den Verschlüsselungsstatus einer Datendatei überprüfen, bevor Sie sie öffnen.

neuer Datenschlüssel()

Der Befehl New data key() Befehl generiert einen binären Datenverschlüsselungsschlüssel aus einer gegebenen Passphrase. Da 4D beim Öffnen einer Datendatei automatisch auf den angeschlossenen Geräten nach einem gültigen Datenverschlüsselungsschlüssel sucht, können Sie mit diesem Befehl Ihren eigenen binären Datenverschlüsselungsschlüssel erzeugen, den Sie dann in eine Datei schreiben können.

Datenschlüssel ermitteln

Wenn Sie vergessen haben, das Gerät mit dem Datenverschlüsselungsschlüssel anzuschließen, bevor Sie eine Datendatei öffnen, können Sie mit dem Befehl Discover data key() Befehl verwenden, um den Schlüssel bereitzustellen.

Datenschlüssel registrieren()

Um zu vermeiden, dass Sie den Datenverschlüsselungsschlüssel bei jedem Öffnen einer Datendatei erneut eingeben müssen, können Sie ihn mit dem Befehl Register data key() verwenden, um ihn zum 4D Schlüsselbund hinzuzufügen.

Befehle in Aktionen

Die obige HDI demonstriert alle Befehle in diesem Blogbeitrag, um Ihnen einen Überblick mit konkreten Beispielen zu geben, wie Sie sie für Ihre eigenen Datenbanken verwenden können.

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert ist seit 2017 als Product Owner im 4D Produktteam tätig. Als Product Owner ist sie für das Schreiben der User Stories und deren Umsetzung in funktionale Spezifikationen zuständig. Ihre Aufgabe ist es auch, sicherzustellen, dass die Implementierung der Funktionen den Anforderungen des Kunden entspricht. Marie-Sophie ist Absolventin der ESIGELEC Ingenieurschule und begann ihre Karriere als Ingenieurin bei IBM im Jahr 1995. Sie nahm an verschiedenen Projekten teil (Wartungs- oder Build-Projekte) und arbeitete als Cobol-Entwicklerin. Dann arbeitete sie als UML-Designerin und Java-Entwicklerin. In letzter Zeit bestand ihre Hauptaufgabe darin, funktionale Anforderungen zu analysieren und zu schreiben sowie Geschäfts- und Entwicklungsteams zu koordinieren.