Encrypt data BLOB
Encrypt data BLOB ( blobToEncrypt ; keyObject | passPhrase ; salt ; encryptedBLOB ) -> Résultat
Paramètre | Type | Description | |
---|---|---|---|
blobToEncrypt | Blob | → | BLOB à encrypter |
keyObject | passPhrase | Objet, Texte | → | Objet JSON contenant la clé de chiffrement ou le mot de passe pour une génération directe de clé de chiffrement (texte) |
salt | Integer | → | Additional salt for algorithm |
encryptedBlob | Blob | ← | BLOB encrypté |
Résultat | Boolean | ← | 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