| 4D v15 R2ENCRYPT BLOB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D v15 R2
 ENCRYPT BLOB 
         | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ENCRYPT BLOB ( toEncrypt ; sendPrivKey {; recipPubKey} ) | ||||||||
| Parâmetro | Tipo | Descrição | ||||||
| toEncrypt | BLOB |   | Dados a encriptar | |||||
|   | Dados encriptados | |||||||
| sendPrivKey | BLOB |   | Chave privada do emissor | |||||
| recipPubKey | BLOB |   | Chave pública do receptor | |||||
O comando ENCRYPT BLOB criptograma o conteúdo do BLOB toEncrypt com a chave privada do remetente sendPrivKey, bem como, opcionalmente, a chave pública do destinatário recipPubKey. Estas chaves devem ser geradas pelo comando GENERATE ENCRYPTION KEYPAIR (no âmbito do tema "Protocolo Seguro").
Nota: Este comando usa o algoritmo do protocolo SSL e recursos de criptografia. Para poder usar este comando, certifique-se que os componentes necessários para o protocolo SSL estão corretamente instalados em sua máquina - mesmo que você não queira usar SSL para conexões de servidor Web de 4D. Para obter informações detalhadas sobre esse protocolo, consulte a seção de Usar protocolo TLS, usando protocolo SSL.
O BLOB contendo as chaves tem um formato PKCS interno. Este formato de plataforma padrão permite a troca ou o tratamento de chaves simplesmente copiando-colando em um e-mail ou um arquivo de texto.
Uma vez que o comando foi executado, o BLOB toEncrypt contém os dados criptografados, que serão descriptografados apenas com o comando DECRYPT BLOB, com a chave pública do remetente passada como parâmetro.
Além disso, se chave pública do destinatário opcional foi usada para criptografar as informações, a chave privada do destinatário também será necessária para descriptografar.
O princípio da criptografia com chaves públicas e privadas para a troca de mensagens entre duas pessoas, "Alice" e "Bob":

Nota: A cifra inclui uma funcionalidade de verificação a fim de evitar qualquer alteração de conteúdo BLOB (deliberadamente ou não). Por conseguinte, um BLOB criptografado não deve ser modificado, de outra forma não poderia ser decifrado.
A criptografia de dados atrasa a execução de suas aplicações, especialmente se um par de chaves é usado. No entanto, você pode considerar as seguintes dicas de otimização:
Caso contrário, por razões de segurança, o modo síncrono é utilizado. Este modo é mais lento, uma vez que congela a outros processos.
A empresa deseja manter os dados armazenados em um banco de dados 4D privado. Tem que enviar regularmente essas informações às suas filiais através de arquivos, via Internet.
1) A empresa gera um par de chaves com o comando GENERATE ENCRYPTION KEYPAIR:
  `Método GENERAR_LLAVES_TXT
 C_BLOB($BChavePublica;$BChavePrivada)
 GENERATE ENCRYPTION KEYPAIR($BChavePrivada;$BChavePublica)
 BLOB TO DOCUMENT("ChavePublica.txt";$BChavePublica)
 BLOB TO DOCUMENT("ChavePrivada.txt";$BChavePrivada)2) A empresa mantém a chave privada e envia uma cópia do documento que contém a chave pública para cada filial. Para segurança máxima, a chave deve ser copiada em um disco e entregue as filiais.
3) Em seguida, a empresa copia as informações privadas (armazenada no campo de texto, por exemplo) nos BLOBs que serão criptografados com a chave privada:
  `Método CIFRAR_INFO
 C_BLOB($vbCifrado;$vbChavePrivada)
 C_TEXT($vtCifrado)
 
 $vtCifrado:=[Privado]Info
 VARIABLE TO BLOB($vtCifrado;$vbCifrado)
 DOCUMENT TO BLOB("ChavePrivada.txt";$vbChavePrivada)
 If(OK=1)
    ENCRYPT BLOB($vbCifrado;$vbChavePrivada)
    BLOB TO DOCUMENT("Update.txt";$vbCifrado)
 End if4) Os arquivos de atualização podem ser enviados para as filiais (apesar de um canal não-seguro, como a Internet). Se uma terceira pessoa agarra o arquivo criptografado, ela não será capaz de decifrá-lo sem a chave pública.
5) Cada filial pode decifrar o documento com a chave pública:
  `Método DESCIFRAR_INFO
 C_BLOB($vbCifrado;$vbChavePublica)
 C_TEXT($vtDescifrado)
 C_TIME($vtDocRef)
 
 ALERT("Por favor selecione um documento cifrado.")
 $vtDocRef:=Open document("") `Selecione Update.txt
 If(OK=1)
    CLOSE DOCUMENT($vtDocRef)
    DOCUMENT TO BLOB(Document;$vbCifrado)
  `Sua chave privada é carregada
    DOCUMENT TO BLOB("ChavePublica.txt";$vbChavePublica)
    If(OK=1)
       DECRYPT BLOB($vbCifrado;$vbChavePublica)
       BLOB TO VARIABLE($vbCifrado;$vtDescifrado)
       CREATE RECORD([Privado])
       [Privado]Info:=$vtDescifrado
       SAVE RECORD([Privado])
    End if
 End if1) O escritório corporativo e cada filial geram os seus próprios pares de chaves (com o método GENERATE_KEYS_TXT).
2) A chave privada é mantida em segredo pelos dois lados. Cada filial envia sua chave pública para a sede da empresa que, por sua vez, envia sua chave pública também. Esta transferência de chave não precisa ser feito através de um canal seguro já que a chave pública não é suficiente para decifrar a mensagem.
3) Para criptografar os dados para enviar, a filial ou a casa corporativa executa o método ENCRYPT_INFO_2 que usa a chave privada do remetente e a chave pública do destinatário para criptografar as informações:
  `Método <span class="rte4d_cmd">CIFRAR_INFO_2</span><gen9>
 C_BLOB($vbCifrado;$vbChavePrivada;$vbChavePublica)
 C_TEXT($vtCifrado)
 C_TIME($vtDocRef)
 
 $vtEncrypt:=[Privado]Info
 VARIABLE TO BLOB($vtCifrado;$vbCifrado)
  ` Sua própria chave privada é carregado...
 DOCUMENT TO BLOB("ChavePrivada.txt";$vbChavePrivada)
 If(OK=1)
  ` ...e a chave pública do destinatário
    ALERT("Por favor selecione a chave pública do destinatário.")
    $vhDocRef:=Open document("") `Chave pública a ser carregada
    If(OK=1)
       CLOSE DOCUMENT($vtDocRef)
       DOCUMENT TO BLOB(Document;$vbChavePublica)
  `Cifrado do BLOB com duas chaves como parâmetros
       ENCRYPT BLOB($vbCifrado;$vbChavePrivada;$vbChavePublica)
       BLOB TO DOCUMENT("Update.txt";$vbCifrado)
    End if
 End if</gen9>4) O arquivo criptografado pode ser enviado para o destinatário através da Internet . Se uma terceira pessoa se apodera dele, ele ou ela não será capaz de decifrar a mensagem, mesmo se ele ou ela tem as chaves públicas já que a chave privada do destinatário também será necessária.
5) Cada destinatário pode descriptografar o documento usando suas próprias chaves privadas e o a chave pública do remetente:
  `Método <span class="rte4d_cmd">CIFRAR_INFO_2</span><gen9>
 C_BLOB($vbCifrado;$vbChavePrivada;$vbChavePublica)
 C_TEXT($vtCifrado)
 C_TIME($vtDocRef)
 
 ALERT("Por favor selecione la chave pública do destinatario.")
 $vhDocRef:=Open document("") `Chave pública a ser carregada
 If(OK=1)
    CLOSE DOCUMENT($vhDocRef)
    DOCUMENT TO BLOB(Document;$vbCifrado)
  `Se carrega sua própria chave privada
    DOCUMENT TO BLOB("ChavePrivada.txt";$vbChavePrivada)
    If(OK=1)
  ` ...e a chave pública do emissor
       ALERT("Por favor selecione a chave pública do emissor.")
       $vhDocRef:=Open document("") `Chave pública a carregar
       If(OK=1)
          CLOSE DOCUMENT($vhDocRef)
          DOCUMENT TO BLOB(Document;$vbChavePublica)
  `Descifrar o BLOB com duas chaves como parâmetros
          DECRYPT BLOB($vbCifrado;$vbChavePublica;$vbChavePrivada)
          BLOB TO VARIABLE($vbCifrado;$vtDescifrado)
          CREATE RECORD([Privado])
          [Privado]Info:=$vtDescifrado
          SAVE RECORD([Privado])
       End if
    End if
 End if</gen9>
	Produto: 4D
	Tema: BLOB
	Número 
        689
        
        
        
	
	Criado por: 4D v6.7
Encryption, Public Key, Private key, PKCS, Optimization
	
	
	
	
	
	
	Manual de linguagem 4D ( 4D v15)
	Manual de linguagem 4D ( 4D v15 R2)
	
	
	
	Manual de linguagem 4D ( 4D v15.4)
	
	
	
	
	Manual de linguagem 4D ( 4D v15.3)
	
	
 Adicionar um comentário
Adicionar um comentário