4D v19

Encrypt data BLOB

Inicio

 
4D v19
Encrypt data BLOB

Encrypt data BLOB 


 

Encrypt data BLOB ( blobAEncriptar ; objetoLlave | frasePasar ; sal ; blobEncriptado ) -> Resultado 
Parámetro Tipo   Descripción
blobAEncriptar  BLOB in BLOB a encriptar
objetoLlave | frasePasar  Objeto, Texto in Objeto JSON que contiene la llave de cifrado o la frase de paso para la generación directa de la llave de cifrado (texto)
sal  Entero largo in Sal adicional para el algoritmo
blobEncriptado  BLOB in BLOB Encriptado
Resultado  Booleano in True si la encriptación se ha realizado correctamente, False en caso contrario

El comando Encrypt data BLOB encripta el parámetro blobAEncriptar con el mismo algoritmo que 4D utiliza para encriptar datos (AES-256) y devuelve el resultado en blobEncriptado.

Puede utilizar un objetoLlave o una frasePasar para encriptar el BLOB:

  • objetoLlave: un objeto JSON que contiene la llave de cifrado, con la misma estructura que el objeto devuelto por el comando New data key
  • frasePasar: una cadena utilizada para generar la llave de cifrado

Pase en sal un número que se utilizará para hacer el cifrado más robusto.

Si el cifrado tiene éxito, los datos cifrados se devuelven en el parámetro blobEncriptado y el comando devuelve True.

En caso de error, el BLOB se devuelve vacío y el comando devuelve False.

 

Nota: cuando se encripta un blob utilizando Encrypt data BLOB, el blobEncriptado resultante es un múltiplo de 16 bytes debido al algoritmo de encriptación. En consecuencia, si blobAEncriptar no es un múltiplo de 16 bytes, el comando lo convierte automáticamente en un múltiplo de 16 bytes añadiendo bytes nulos al final. Para evitar errores al descifrar el blob con Decrypt data BLOB, es necesario manejar el tamaño del blobAEncriptar 
cuando se trabaja con archivos que no son de texto. Para un ejemplo detallado de cómo hacerlo, ver este artículo del blog.

Ejemplo  

Encriptar un archivo de texto ubicado en la carpeta RESOURCES de la base de datos:

 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:=Encrypt data BLOB($blobToEncrypt;"myPassPhrase";MAXLONG;$encryptedBlob)
 $encryptedFile.setContent($encryptedBlob)



Ver también 


Decrypt data BLOB
Encrypt data file
New data key

 
PROPIEDADES 

Producto: 4D
Tema: Seguridad de los datos
Número 1773

This command can be run in preemptive processes

 
HISTORIA 

New
Creado por: 4D v19

 
ARTICLE USAGE

Manual de lenguaje 4D ( 4D v19)
Manual de lenguaje 4D ( 4D v19.1)