Estoy creando una página web (similar a una red social) que será de código abierto, pero probablemente solo se ejecutará en un servidor, con múltiples niveles (php, javascript (ojalá sin ningún módulo), postgresql).
Ahora he leído en alguna parte, que es una buena idea diseñar su base de datos de tal manera, incluso si alguien la controla, no puede obtener información confidencial (contraseña, etc.).
Sin embargo, hasta donde sé, el GDPR clasifica las direcciones de correo electrónico como información confidencial / personal, por lo que también debe protegerse. Dado que enviaré correos electrónicos de confirmación y notificación, un hash no será bueno, y no tengo idea de dónde debo cifrar las direcciones de correo electrónico: si a un nivel de php, tendré una clave codificada (BAD) o una Archivo de configuración con una clave en él (más problemas). Me han dicho que puedo hacerlo a nivel de base de datos, pero si los estoy protegiendo contra el robo de la base de datos, ¿no sería eso también robar la clave de cifrado?
¿Cuál es la forma correcta de mantener ocultos los correos electrónicos incluso si la base de datos está en peligro?