Saltar para o conteúdo principal
Versão: 21 R3

Encrypt data BLOB

Encrypt data BLOB ( blobAcriptografar : Blob ; objetoChave / passefrase ; salt : Integer ; blobCriptografado' ) : Boolean

ParâmetroTipoDescrição
blobAcriptografarBlob→BLOB que vai criptografar
objetoChave / passefraseObjeto, Texto→Objeto JSON que contém a chave de criptografia ou passefrase para geração de uma chave de criptografia direta (texto)
saltInteger→Sal de criptografia (para adicionar dados aleatórios) para maior segurança do algoritmo
blobCriptografado'BLOB←BLOB que foi criptografado
ResultadoBoolean←TRUE se a criptografia for realizada corretamente, senão FALSE
Histórico
VersãoAlterações
19Criado por

Description​

O comando Encrypt data BLOB encripta o parâmetro blobCriptografar com o mesmo algoritmo que 4D usas para criptografia de dados (AES-256) e retorna o resultao em blobCriptografado.

Pode usar um objetoChave ou uma passefrase para criptografar o BLOB:

  • objetoChave: um objeto JSON que contém a chave de criptografia com a mesma estrutura que o objeto retornado pelo comando New data key
  • passefrase: uma string usada para gerar a chave de criptografia

Passe em salt (sal de criptografia) um número que será usado para tornar a criptografia mais robusta.

Se a criptografia tiver sucesso, os dados criptografados são retornados no parâmetro blobCriptografado e o comando retorna True.

No caso de um erro, o BLOB é retornada vazia e o comando retorna False.

Nota: Quando criptografar um blob usando Encrypt data BLOB, o resultado blobCriptografado é um múltiplo de 16 bytes por causa do algoritmo de criptografia. Como consequência, se blobCriptografar não for um múltiplo de 16 bytes, o comando automaticamente vira para um múltiplo de 16 bytes para adicionar null bytes no final. Para evitar erros quando decriptografar o blob com Decrypt data BLOB, precisa manejar o tamanho de blobCritpgrafar quando trabalhar com arquivos que não forem arquivos de texto. Para um exemplo detalhado de como fazer isso, veja esse artigo no blog.

Exemplo​

Para criptografar um arquivo texto na pasta RESOURCES no banco de dados:

 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 também​

Decrypt data BLOB
ENCRYPT BLOB
Encrypt data file
New data key

Propriedades​

Número do comando1773
Thread-seguroyes