Encrypt data BLOB
Encrypt data BLOB ( blobAcriptografar ; objetoChave / passefrase ; salt ; blobCriptografado' ) : Boolean
Parâmetro | Tipo | Descrição | |
---|---|---|---|
blobAcriptografar | Blob | → | BLOB que vai criptografar |
objetoChave / passefrase | Objeto, Texto | → | Objeto JSON que contém a chave de criptografia ou passefrase para geração de uma chave de criptografia direta (texto) |
salt | Integer | → | Sal de criptografia (para adicionar dados aleatórios) para maior segurança do algoritmo |
blobCriptografado' | BLOB | ← | BLOB que foi criptografado |
Resultado | Boolean | ← | TRUE se a criptografia for realizada corretamente, senão FALSE |
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