Aller au contenu principal
Version: Next

Encrypt data BLOB

Encrypt data BLOB ( blobToEncrypt ; keyObject | passPhrase ; salt ; encryptedBLOB ) -> Résultat

ParamètreTypeDescription
blobToEncryptBLOB🡒BLOB à encrypter
keyObject | passPhraseObjet, Texte🡒Objet JSON contenant la clé de chiffrement ou le mot de passe pour une génération directe de clé de chiffrement (texte)
saltEntier long🡒Additional salt for algorithm
encryptedBLOBBLOB🡘BLOB encrypté
RésultatBooléen🡐True si le chiffrement a été effectué correctement. Sinon False

Description

La commande Encrypt data BLOBencrypte le paramètre blobToEncrypt avec le même algorithme utilisé par 4D pour encrypter les données (AES-256) et retourne le résultat dans encryptedBlob..

Vous pouvez utiliser un paramètre keyObject ou un passPhrase pour encrypter le BLOB :

  • keyObject : un objet JSON contenant la clé de chiffrement, avec la même structure que l'objet retourné par la commande New data key
  • passPhrase : une chaîne utilisée pour générer la clé de chiffrement

Passez dans salt le nombre qui sera utilisé pour renforcer le chiffrement.

Si le chiffrement est réussi, les données chiffrées sont retournées dans le paramètre encryptedBlob et la commande retourne True.

En cas d'erreur, le BLOB est retourné vide et la commande retourne false.

Note : Lorsque vous cryptez un objet blob à l'aide de Encrypt data BLOB, l'encryptedBlob résultant est un multiple de 16 octets en raison de l'algorithme d'encription. Par conséquent, si blobToEncrypt n'est pas un multiple de 16 octets, la commande le transforme automatiquement en un multiple de 16 octets en ajoutant des octets nuls à la fin. Pour éviter les erreurs lors du déchiffrement du blob avec Decrypt data BLOB, vous devez gérer la taille de blobToEncrypt lorsque vous travaillez avec des fichiers autres que des fichiers texte. Pour un exemple détaillé sur la façon de procéder, consultez cet article de blog.

Exemple

Cryptez un fichier texte situé dans le dossier RESSOURCES de la base de données :

 var $fileToEncrypt;$encryptedFile : 4D.File
 var $blobToEncrypt;$encryptedBlob : Blob
 var $result : Boolean
 
 $fileToEncrypt:=File("/RESOURCES/confidential.txt")
 $encryptedFile:=File("/RESOURCES/encryptedConfidential.txt")
 
 $blobToencrypt:=$fileToEncrypt.getContent()
 
 $result:=Encrypter donnees BLOB($blobToEncrypt;"myPassPhrase";MAXLONG;$encryptedBlob)
 $encryptedFile.setContent($encryptedBlob)

Voir aussi

Decrypt data BLOB
ENCRYPT BLOB
Encrypt data file
New data key