Saltar al contenido principal
Versión: Siguiente

Encrypt data BLOB

Encrypt data BLOB ( blobAEncriptar ; objetoLlave | frasePasar ; sal ; blobEncriptado ) -> Resultado

ParámetroTipoDescripción
blobAEncriptarBLOB🡒BLOB a encriptar
objetoLlave | frasePasarObjeto, Texto🡒Objeto JSON que contiene la llave de cifrado o la frase de paso para la generación directa de la llave de cifrado (texto)
salEntero largo🡒Sal adicional para el algoritmo
blobEncriptadoBLOB🡘BLOB Encriptado
ResultadoBooleano🡐True si la encriptación se ha realizado correctamente, False en caso contrario

Description

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 BLOB
Encrypt data file
New data key