Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com

Página Inicial

 
4D v20.6
Encrypt data file

Encrypt data file 


 

Encrypt data file ( rotaEstrutura ; rotaDados {; novaFrasePasse/novaChave {; arqPasta {; atualFrasePasse/atualChave {; nomeMetodo}}}} ) -> Resultado 
Parâmetro Tipo   Descrição
rotaEstrutura  Texto in Rota para o arquivo estrutura
rotaDados  Texto in Rota de arquivo de dados a criptografar
novaFrasePasse/novaChave  Texto, Objeto in Em caso de mudança: novaFrasePasse (texto) ou nova chave de Criptografia (objeto)
arqPasta  Texto in Rota da pasta onde os arquivos originais estão armazenados
atualFrasePasse/atualChave  Texto, Objeto in frase Passe atual (texto) ou chave de criptografia atual (objeto)
nomeMetodo  Texto in Nome de método de chamada 4D
Resultado  Texto in Rota completa de pasta onde os arquivos originais estão armazenados

O comando Encrypt data file se utiliza para cifrar ou cifrar novamente o arquivo de dados designado pelo parâmetro rotaDados associado ao parâmetro rotaEstrutura. Também pode ser utilizado para eliminar o cifrado do banco de dados. O comando não modifica os arquivos originais, devolve o nome de rota completo da pasta criada para respaldar o arquivo de dados original.

Notas:

  • Este comando não  pode ser utilizado com o arquivo de dados aberto atualmente.
  • Este comando só pode ser executado desde 4D (modo local) ou 4D Server (procedimento armazenado). O arquivo de dados que vão ser cifrados deve corresponder ao arquivo de estrutura designado por rotaEstrutura.

A execução deste comando cifrará ou modificará o cifrado de todas as tabelas do banco de dados que foram definidas como "encriptografável". Para mais informação, consulte a seção Criptografia.

Atenção: o cifrado de um banco de dados é uma operação prolongada. Mostra um indicador de progresso (que pode ser interrompido pelo usuário). Lembre que a sequência de cifrado do banco de dados inclui um passo de compactação.

No parâmetro rotaEstrutura, pode passar uma string vazia ou a rota de acesso completa do arquivo de estrutura associado com o arquivo de dados que quiser cifrar. Esta informação é necessária para o procedimento de cifrado. Se passar uma string vazia, aparecerá um quadro de diálogo Abrir arquivo padrão para que o usuário possa designar o arquivo de estrutura que se utilizará. Do contrário, pode passar uma rota de acesso completa, expressa na sintaxe de sistema operativo.

No parâmetro rotaDados, pode passar uma string vazia, um nome de arquivo ou uma rota completa (deve ser expressa na sintaxe de sistema operativo). Se passar uma string vazia, aparecerá um quadro de diálogo Abrir arquivo padrão para que o usuário possa designar o arquivo de dados que vai ser cifrado. Este arquivo deve corresponder ao arquivo de estrutura definido no parâmetro rotaEstrutura. Se passar apenas o nome de arquivo de dados, 4D o buscará no mesmo nivel que o arquivo de estrutura.

  • Para cifrar o banco de dados pela primeira vez, só necessita passar o parâmetro novaFrasePasse ou novaChaveDados (os parâmetros atualFrasePasse ou atualChave não devem ser proporcionadas):
    • novaFrasePasse: cadena utilizada para generar la llave de cifrado (SHA de 256 bits)
    • novaChave: objeto (com propriedade encodedKey) que contém uma nova chave de cifrado de dados. Esta chave deveria ter sido gerado com o comando New data key.
        
    Nota: novaFrasePasse (ou novaChave) não é agregada ao chaveiro 4D.
  • Para voltar a cifrar um banco de dados (ou seja, o banco de dados já tiver sido cifrado), deve passar tanto o parâmetro novaFrasePasse (ou novaChave), como a frase passe atual (ou a chave de dados atual). Isto é necessário para descifrar o banco de dados antes de voltar a criptografá-lo. Esta informação pode ser proporcionada das seguentes maneiras:
    • passando parâmetros válidos de atualFrasePasse (ou atualChave) ao comando,
    • no chaveiro 4D.
  • Para eliminar o cifrado de todas as tabelas, passe uma frase passe vazia ou uma chave de dados nula como novaFrasePasse (ou novaChave). A senha ou chave de dados atual já deve ter sido proporcionada. Os arquivos descifrados são genrados ou copiados em pastas denominadas "Arquivos substituidos (Descifrado) YYYY-MM-DD HH-MM-SS”/"Decrypted files YYYY-MM-DD HH-MM-SS".

O comando não modifica os arquivos originais. São movidas na pasta pastaArquivo (se for passado) a uma pasta especial denominada Arquivos substituídos (Encriptação) YYYY-MM-DD HH-MM-SS ou Arquivos substituídos (Descifrado) YYYY-MM-DD HH-MM-SS onde YYYY-MM-DD HH-MM-SS representa a data e a hora da operação. Por exemplo: "Arquivos substituidos (cifrado) 2018-09-29 13-00-35". O novo arquivo de dados cifrados ou descifrados substitui automaticamente o arquivo original.
Se passar "" em pastaArquivo, aparecerá um diálogo Abrir pasta padrão para que o usuário possa especificar o local da pasta que será criada. Se pastaArquivo se omite, os arquivos originais são armazenados automaticamente em uma pasta com marca de tempo criada junto ao arquivo de estrutura.

O parâmetro método se utiliza para estabelecer um método de retro chamada que se chamará regularmente durante o processo de cifrado. Se passar uma string vazia ou um nome de método não válido, este parâmetro se ignora (não se chama a nenhum método). Quando se chamar, este método recebe até 5 parâmetros segundo o tipo de evento que origina a chamada (ver mais abaixo). É imperativo declarar estes parâmetros no método:

Evento$1 (Inteiro longo)$2 (Inteiro longo)$3 (Texto)$4 (Inteiro longo)$5 (Inteiro longo)
Message10Mensagem de progresso (por exemplo, "Cifrado de BLOBs na tabela Documents")Porcentagem realizado (por exemplo, 50)Reservado
Encryption finished20Mensagen de OK (por exemplo, "Ok")0Reservado
Error30Mensagem de erro (por exemplo, "Problema na tabela de dados XX: Não se proporcionou a chave de cifrado") 0Reservado
End of execution40"Ok"0Reservado
Warning(*)5Tipo de objetoTexto de erroTabela ou número de índiceReservado

(*) Advertência devolvida no passo de verificação (consulte o comando VERIFY DATA FILE).

Valor devolvido

Rota real da pasta de destino dos arquivos originais.

Criptografar um arquivo de dados pela primeira vez:

 C_TEXT($folder;$passphrase)
 $passphrase:=Request("Entre a frase passe")
 If(OK=1)
  //Como o arquivo de dados não for criptografada, nenhuma chave de criptografia atual é fornecida
    $folder:=Encrypt data file(Structure file;"myData.4DD";$passphrase)
 End if

Recriptografar um arquivo de dados já criptografado (mudar a frase passe):

 C_TEXT($folder;$targetFolder;$passphrase;$newPassphrase)
 $passphrase:=Request("Entre a frase passe atual")
 If(OK=1)
    $newPassphrase:=Request("Entre a nova frasepasse")
    If(OK=1)
       $targetFolder:=Get 4D folder(Database folder)+"Save"+Folder separator
  //Como o arquivo de dados for criptografado, a chave de criptografia atual deve ser fornecida
       $folder:=Encrypt data file(Structure file;"myData.4DD";$newPassphrase;$targetFolder;$passphrase)
    End if
 End if

Remover a criptografia de um arquivo de dados criptografado:

 C_TEXT($folder;$targetFolder;$passphrase)
 $passphrase:=Request("Entre a frase passe")
 If(OK=1)
    $targetFolder:=Get 4D folder(Database folder)+"DecryptedData"+Folder separator
  //A nova frase passe está estabelecida para uma string vazia para decriptografar todos os dados
  //A frase passe atual deve ser fornecida
    $folder:=Encrypt data file(Structure file;"myData.4DD";"";$targetFolder;$passphrase)
 End if

Re-encriptar um arquivo de dados criptografado com a chave atual (por exemplo, quando o estado de criptografia foi mudado para algumas tabelas).

 C_TEXT($folder;$passPhrase)
 C_BOOLEAN($added)
 
 $passphrase:=Request("Entre a frase passe")
 If(OK=1)
    $added:=Register data key($passphrase//A chave de dados agora está no chaveiro  4D
    $folder:=Encrypt data file(Structure file;"myData.4DD")
 End if



Ver também 

4D Blog - New 4D commands to work with encrypted data
Data file encryption status
Decrypt data BLOB
Encrypt data BLOB
New data key

 
PROPRIEDADES 

Produto: 4D
Tema: Segurança de Dados
Número 1610

 
CONTEÚDO DA PÁGINA 
 
HISTÓRIA 

Criado por: 4D v17 R5

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v20)
Manual de linguagem 4D ( 4D v20.1)
Manual de linguagem 4D ( 4D v20.2)
Manual de linguagem 4D ( 4D v20.3)
Manual de linguagem 4D ( 4D v20.4)
Manual de linguagem 4D ( 4D v20.5)
Manual de linguagem 4D ( 4D v20.6)