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álidaO 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.