Novos comandos 4D para trabalhar com dados encriptados

Tradução automática de Deepl

Num post anterior, discutimos como começar com a encriptação de ficheiros de dados. Agora vamos discutir uma forma adicional de trabalhar com ficheiros de dados encriptados: Novos comandos 4D. Estes comandos são concebidos para suportar a maioria dos requisitos de encriptação e permitir-lhe entregar uma solução encriptada aos seus clientes.

HDI: Exemplo de comandos de encriptação de dados

Criptografia de um ficheiro de dados

Para além do MSC, pode gerir a encriptação com o Encrypt data file() comando:

C_TEXT($folder;$passphrase)
$passphrase :=Request("Insira a frase-chave")
if (OK=1)
$folder :=Encrypt data file("Macintosh HD:Users:structures:myDataBase.4DB";
"Macintosh HD:Users:data:myData.4DD";$passphrase)
// myData.4DD is not opened
End if

Fornecimento da chave de encriptação de dados através da língua

Para além da detecção automática da chave de encriptação de dados 4D, o novo comando provideDataKey() está disponível no ds objecto para fornecer a chave de encriptação de dados a um ficheiro de dados aberto. Isto é útil ao construir a sua própria interface de utilizador para controlar o acesso aos seus dados encriptados.

Enquanto ds é uma característica da ORDA, a provideDataKey() é válido tanto para o código ORDA como para o clássico código 4D.

C_OBJECT($keyStatus)
C_TEXT ($passphrase)
$passphrase :=Request("Introduza a frase-chave")
if (OK=1)
$keyStatus :=ds.provideDataKey($passphrase)
If ($keyStatus.success)
ALERT ("Forneceu uma chave de encriptação válida")
Else
ALERT ("Forneceu uma chave de encriptação inválida
“).O acesso aos dados encriptados é negado")
End if
End if

OBTER O ESTADO DE ENCRIPTAÇÃO

O novo comando encryptionStatus() também está disponível no ds objecto. Verifica se o ficheiro de dados aberto está ou não encriptado e se foi fornecida uma chave de encriptação de dados válida.

C_OBJECT($status;$provideStatus)
C_TEXT ($passphrase)
$status :=ds.encryptionStatus()
Case of
: (Not($status.isEncrypted))
ALERT("Os dados não são encriptados")
: (($status.isEncrypted) & (Not($status.keyProvided)))
ALERT ("Os dados são encriptados e não foi fornecida uma chave de encriptação válida. O acesso aos dados encriptados é negado")).
(($status.isEncrypted) & ($status.keyProvided)))
ALERT("Os dados são encriptados e a chave de encriptação já foi fornecida. O acesso aos dados cifrados é concedido").
End case

OUTROS COMANDANTES

estado do ficheiro de DADOS não aberto

O Data file encryption status() devolve o estado de encriptação de um ficheiro de dados especificado, não aberto. Isto permite verificar o estado de encriptação de um ficheiro de dados antes de o abrir.

nova chave de dados()

O New data key() gera uma chave de encriptação de dados binários a partir de uma dada frase-chave. Uma vez que 4D procura automaticamente uma chave de encriptação de dados válida em dispositivos ligados quando um ficheiro de dados é aberto, este comando permite-lhe gerar a sua própria chave de encriptação de dados binários que pode depois escrever num ficheiro.

descobrir a chave de dados

Se se esquecer de ligar o dispositivo que contém a sua chave de encriptação de dados antes de abrir um ficheiro de dados, pode utilizar o comando Discover data key() comando para fornecer a chave.

chave de dados de registo()

Para evitar fornecer a chave de encriptação de dados cada vez que se abre um ficheiro de dados, pode utilizar o comando Register data key() comando para a adicionar ao chaveiro 4D.

comandos em acções

O HDI acima demonstra todos os comandos neste post do blog para lhe dar uma visão geral com exemplos concretos sobre como utilizá-los para as suas próprias bases de dados.

Avatar
• Proprietário do produto - Marie-Sophie Landrieu -Yvert entrou ao time 4D Product como Proprietária do Produto em 2017. Como tal, está a cargo de escrever as histórias dos usuários e depois traduzi-las em especificações funcionais. Seu papel também é garantir que a implementação da funcionalidade entregue cumpra com as necessidades do cliente. Marie-sophie se formou na Escola de Engenharia de ESIGELEC e começou sua carreira como engenheira da IBM em 1995. Participou em vários projetos (de manutenção e criação) e trabalhou como desenvolvedora de Cobol. Depois trabalhou como designer de UML e desenvolvedora de Java. Suas principais funções foram analisar e redigir requisitos funcionais, coordenar os times de negócio e de desenvolvimento.