En un post anterior, hablamos de cómo empezar a trabajar con la encriptación de archivos de datos. Ahora vamos a discutir una forma adicional de trabajar con archivos de datos encriptados: Los nuevos comandos de 4D. Estos comandos están diseñados para soportar la mayoría de los requerimientos de encriptación y le permiten entregar una solución encriptada a sus clientes.
HDI: Ejemplo de comandos de encriptación de datos
Encriptación de un archivo de datos
Además del MSC, puedes gestionar el cifrado con el Encrypt data file() comando:
C_TEXT($folder;$passphrase)
$passphrase :=Request("Introduzca la frase de contraseña")
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
Proporcionar la clave de encriptación de datos a través del lenguaje
Además de la detección automática de claves de encriptación de datos de 4D, el nuevo provideDataKey() está disponible en el objeto ds para proporcionar la clave de encriptación de datos a un archivo de datos abierto. Esto es útil al construir su propia interfaz de usuario para controlar el acceso a sus datos encriptados.
Mientras que ds es una característica de ORDA, el comando provideDataKey() es válido tanto para el código ORDA como para el clásico de 4D.
C_OBJECT($keyStatus)
C_TEXT ($passphrase)
$passphrase :=Request("Introduzca la frase de contraseña")
if (OK=1)
$keyStatus :=ds.provideDataKey($passphrase)
If ($keyStatus.success)
ALERT ("Ha proporcionado una clave de cifrado válida")
Else
ALERT ("Ha proporcionado una clave de cifrado no válida. El acceso a los datos cifrados está denegado")
End if
End if
OBTENER EL ESTADO DE CIFRADO
El nuevo encryptionStatus() también está disponible en el objeto ds objeto. Comprueba si el archivo de datos abierto está encriptado o no y si se ha proporcionado una clave de encriptación de datos válida.
C_OBJECT($status;$provideStatus)
C_TEXT ($passphrase)
$status :=ds.encryptionStatus()
Case of
: (Not($status.isEncrypted))
ALERT("Los datos no están codificados")
: (($status.isEncrypted) & (Not($status.keyProvided))
ALERT ("Los datos están cifrados y no ha proporcionado una clave de cifrado válida. El acceso a los datos encriptados está denegado.")
: (($status.isEncrypted) & ($status.keyProvided))
ALERT("Los datos están cifrados y ya se ha proporcionado la clave de cifrado. Se concede el acceso a los datos encriptados.")
End case
OTROS COMANDOS
estado del archivo DATA sin abrir
El comando Data file encryption status() devuelve el estado de cifrado de un archivo de datos especificado y no abierto. Esto permite verificar el estado de cifrado de un archivo de datos antes de abrirlo.
nueva clave de datos()
El comando New data key() genera una clave binaria de encriptación de datos a partir de una frase de contraseña dada. Dado que 4D busca automáticamente una clave de encriptación de datos válida en los dispositivos conectados cuando se abre un archivo de datos, este comando le permite generar su propia clave de encriptación de datos binarios que puede escribir en un archivo.
descubrir clave de datos
Si se olvida de conectar el dispositivo que contiene su clave de cifrado de datos antes de abrir un archivo de datos, puede utilizar el comando Discover data key() para proporcionar la clave.
registrar clave de datos()
Para evitar proporcionar la clave de cifrado de datos cada vez que abra un archivo de datos, puede utilizar el comando Register data key() para añadirla al llavero de 4D.
comandos en acciones
El IDH anterior demuestra todos los comandos en esta entrada del blog para darle una visión general con ejemplos concretos sobre cómo utilizarlos para sus propias bases de datos.