Recientemente se lanzó PHP7.2 con la biblioteca Sodium incluida para el cifrado.
Por supuesto, ya había módulos de cifrado disponibles, incluso trabajando con Zend Framework 2 o Symfony. Necesitábamos una implementación para Zend Framework 3 y no queríamos confiar en nuestros propios métodos de cifrado, creamos un ZF3 & Módulo de Doctrine 2 que utiliza implementación de encriptación de paragonie .
El propósito, en este momento, es poder cifrar y descifrar automáticamente en la lectura / escritura de ciertas propiedades, detectadas a través de un oyente enganchado en el ORM de Doctrine.
La forma en que lo hemos configurado es la siguiente:
Default
- Recibir una cadena (no cifrar
null
) - Agregue sal en el código (config) a la cadena
- Utilice la clave privada in-code (config) para el cifrado
Obviamente, no es el método más sólido para extender una cadena, pero esto es para asegurarnos de que podemos cifrar los datos marcados con una etiqueta usando la configuración predeterminada. Datos como el nombre de una calle.
Opciones
- Recibir una cadena (no cifrar
null
) - Agregue la sal y / o pimienta generadas de 32 caracteres antes (y después) de la cadena (almacenada en una tabla de db separada, aunque los registros se vincularon mediante una clave externa)
- Agregue sal en el código (config) a la cadena
- Utilice la clave privada in-code (config) para el cifrado
Este es el módulo que, en realidad, solo yo, hemos creado. La implementación real del cifrado / descifrado comienza alrededor de .
- tipos ) para devolver el tipo de valor original
- processFields " en el adaptador.
- adaptador Halite : este es el cifrado / descifrado predeterminado adaptador
¿Por qué estoy preguntando?
Porque espero haber entendido todo bien y, por lo tanto, haber creado algo increíble. Sin embargo, como no soy un experto en criptología y no tenemos tal persona en la empresa, pensé preguntar aquí, con la esperanza de obtener algún comentario.
El código se proporciona tal como está y es de código abierto. Es extensible y reutilizable para que otros puedan usar el mismo servicio pero pueden usar su propio adaptador de cifrado. Sin embargo, no quisiera que usaran algo por debajo del promedio.