Esta documentación ha sido traducida automáticamente por IA.
Cifrado
Campo de colección: CifradoProfessional Edition+Introducción
Ciertos datos empresariales privados, como números de teléfono de clientes, direcciones de correo electrónico o números de tarjeta, pueden ser cifrados. Una vez cifrados, se almacenan en la base de datos en formato de texto cifrado.

Métodos de Cifrado
El plugin genera automáticamente una clave de aplicación que se guarda en el directorio /storage/apps/main/encryption-field-keys.
El nombre del archivo de la clave de aplicación es el ID de la clave, con la extensión .key. Por favor, no modifique el nombre del archivo.
Guarde el archivo de la clave de aplicación de forma segura. Si pierde este archivo, los datos cifrados no podrán descifrarse.
Si el plugin se activa en una subaplicación, la clave se guarda por defecto en el directorio /storage/apps/${nombre-subaplicacion}/encryption-field-keys.
Cómo funciona
Utiliza el método de cifrado de sobre (Envelope Encryption).

Proceso de creación de claves
- La primera vez que se crea un campo cifrado, el sistema genera automáticamente una
clave de aplicaciónde 32 bits y la guarda codificada en Base64 en el directorio de almacenamiento predeterminado. - Cada vez que se crea un nuevo campo cifrado, se genera una
clave de campoaleatoria de 32 bits para este campo. Luego, se cifra utilizando laclave de aplicacióny unvector de cifrado de campode 16 bits generado aleatoriamente (algoritmo de cifradoAES), y se guarda en el campooptionsde la tablafields.
Proceso de cifrado de campos
- Cada vez que se escriben datos en un campo cifrado, primero se recuperan la
clave de campocifrada y elvector de cifrado de campodel campooptionsde la tablafields. - Se descifra la
clave de campocifrada utilizando laclave de aplicacióny elvector de cifrado de campo. Luego, se cifran los datos utilizando laclave de campoy unvector de cifrado de datosde 16 bits generado aleatoriamente (algoritmo de cifradoAES). - Se firman los datos utilizando la
clave de campodescifrada (algoritmo de resumenHMAC-SHA256) y se convierten a una cadena codificada en Base64 (lafirma de datosresultante se utilizará posteriormente para la recuperación de datos). - Se concatenan binariamente el
vector de cifrado de datosde 16 bits y eltexto cifrado de datosresultante, y se convierten a una cadena codificada en Base64. - Se concatenan la cadena codificada en Base64 de la
firma de datosy la cadena codificada en Base64 deltexto cifrado de datosutilizando un separador.. - Se guarda la cadena final concatenada en la base de datos.
Variables de Entorno
Si desea especificar una clave de aplicación personalizada, puede usar la variable de entorno ENCRYPTION_FIELD_KEY_PATH. El plugin cargará el archivo en esa ruta como la clave de aplicación.
Requisitos para el archivo de la clave de aplicación:
- La extensión del archivo debe ser
.key. - El nombre del archivo se utilizará como ID de la clave; se recomienda usar un UUID para asegurar su unicidad.
- El contenido del archivo debe ser datos binarios de 32 bits codificados en Base64.
Configuración de campos

Impacto en el filtrado después del cifrado
Los campos cifrados solo admiten los siguientes filtros: igual a, distinto de, existe, no existe.

Flujo de trabajo de filtrado de datos:
- Recupere la
clave de campodel campo cifrado y descífrela utilizando laclave de aplicación. - Utilice la
clave de campopara firmar el texto de búsqueda introducido por el usuario (algoritmo de resumenHMAC-SHA256). - Concatene la firma con un separador
.y realice una búsqueda por coincidencia de prefijo en el campo cifrado de la base de datos.
Rotación de claves
Antes de usar el comando de rotación de claves nocobase key-rotation, asegúrese de que el plugin esté cargado en la aplicación.
Cuando migre una aplicación a un nuevo entorno y no desee seguir usando la misma clave que en el entorno anterior, puede utilizar el comando nocobase key-rotation para reemplazar la clave de aplicación.
Para ejecutar el comando de rotación de claves, debe especificar la clave de aplicación del entorno antiguo. Después de la ejecución, se generará una nueva clave de aplicación y reemplazará a la anterior. La nueva clave de aplicación se guardará codificada en Base64 en el directorio predeterminado.
Si desea rotar la clave de aplicación de una subaplicación, añada el parámetro --app-name y especifique el name de la subaplicación.

