Nouvelles commandes 4D pour travailler avec des données cryptées

Traduit automatiquement de Deepl

Dans un article précédent, nous avons expliqué comment commencer à utiliser le cryptage des fichiers de données. Nous allons maintenant aborder un moyen supplémentaire de travailler avec des fichiers de données chiffrés : Les nouvelles commandes 4D. Ces commandes sont conçues pour prendre en charge la plupart des exigences de cryptage et vous permettent de fournir une solution cryptée à vos clients.

HDI : Exemple de commandes de cryptage de données

Cryptage d’un fichier de données

En plus du MSC, vous pouvez gérer le cryptage avec la Encrypt data file() pour gérer le cryptage :

C_TEXT($folder;$passphrase)
$passphrase :=Request("Entrez la phrase de passe")
if (OK=1)
$folder :=Encrypt data file("Macintosh HD:Users:structures:maDataBase.4DB" ;
"Macintosh HD:Users:data:maData.4DD" ;$passphrase)
// myData.4DD is not opened
End if

Fournir la clé de cryptage des données via la langue

En plus de la détection automatique de la clé de cryptage des données de 4D, la nouvelle commande provideDataKey() est disponible dans l’objet ds pour fournir la clé de cryptage des données à un fichier de données ouvert. Ceci est utile lorsque vous construisez votre propre interface utilisateur pour contrôler l’accès à vos données cryptées.

Bien que ds soit une fonctionnalité ORDA, la commande provideDataKey() est valable aussi bien pour le code ORDA que pour le code 4D classique.

C_OBJECT($keyStatus)
C_TEXT ($passphrase)
$passphrase :=Request("Entrez la phrase de passe")
if (OK=1)
$keyStatus :=ds.provideDataKey($passphrase)
If ($keyStatus.success)
ALERT ("Vous avez fourni une clé de cryptage valide")
Else
ALERT ("Vous avez fourni une clé de cryptage invalide. L'accès aux données cryptées est refusé.")
End if
End if

OBTENIR L’ÉTAT DE CRYPTAGE

La nouvelle commande encryptionStatus() est également disponible dans l’objet ds objet. Elle vérifie si le fichier de données ouvert est crypté ou non et si une clé de cryptage des données valide a été fournie.

C_OBJECT($status;$provideStatus)
C_TEXT ($passphrase)
$status :=ds.encryptionStatus()
Case of
: (Not($status.isEncrypted) )
ALERT("Les données ne sont pas cryptées")
: (($status.isEncrypted) & (Not($status.keyProvided)))
ALERT ("Les données sont cryptées et vous n'avez pas fourni de clé de cryptage valide. L'accès aux données cryptées est refusé.")
: (($status.isEncrypted) & ($status.keyProvided))
ALERT("Les données sont cryptées et la clé de cryptage a déjà été fournie. L'accès aux données cryptées est autorisé.")
End case

AUTRES COMMANDES

état du fichier DATA non ouvert

La commande Data file encryption status() renvoie l’état de cryptage d’un fichier de données spécifié, non ouvert. Cela vous permet de vérifier l’état de cryptage d’un fichier de données avant de l’ouvrir.

nouvelle clé de données()

La commande New data key() génère une clé de cryptage des données binaires à partir d’une phrase de passe donnée. Étant donné que 4D recherche automatiquement une clé de cryptage des données valide sur les périphériques connectés lorsqu’un fichier de données est ouvert, cette commande vous permet de générer votre propre clé de cryptage des données binaires que vous pouvez ensuite écrire dans un fichier.

découvrir la clé de données

Si vous oubliez de connecter le périphérique contenant votre clé de cryptage des données avant d’ouvrir un fichier de données, vous pouvez utiliser la commande Discover data key() pour fournir la clé.

enregistrer une clé de données()

Pour éviter de fournir la clé de cryptage des données chaque fois que vous ouvrez un fichier de données, vous pouvez utiliser la commande Register data key() pour l’ajouter au trousseau de clés 4D.

Commandes dans les actions

L’IDH ci-dessus démontre toutes les commandes de ce billet de blog pour vous donner une vue d’ensemble avec des exemples concrets sur la façon de les utiliser pour vos propres bases de données.

Avatar
- Product Owner - Marie-Sophie Landrieu-Yvert a rejoint l'équipe de 4D Product en tant que Product Owner en 2017. En tant que Product Owner, elle est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Marie-Sophie est diplômée de l'école d'ingénieur ESIGELEC et a commencé sa carrière en tant qu'ingénieur chez IBM en 1995. Elle a participé à divers projets (projets de maintenance ou de construction) et a travaillé en tant que développeur Cobol. Elle a ensuite travaillé en tant que concepteur UML et développeur Java. Dernièrement, ses principaux rôles étaient d'analyser et de rédiger des exigences fonctionnelles, de coordonner les équipes commerciales et de développement.