Estoy experimentando con la creación de una página del sistema de mensajes simples (PHP) que utiliza una tabla MySQL para almacenar las entradas. El esbozo de las columnas voy a utilizar en la tabla son:¿Cómo encriptar una columna específica en una tabla MySQL?
msg_id (clave principal, AUTO_INCREMENT)
user_id (apuntando clave externa para el usuario que creó el mensaje)
tiempo (una entrada DATETIME para proporcionar marcas de tiempo msg)
msg (a VARCHAR que contiene el msg)
accesible (apenas un int (1), 0 significa que nadie excepto el propio usuario puede leer msg, y 1 significa que otros puedan leerlo)
Lo que me pregunto es, ¿cuál es la mejor forma de cifrar el campo msg para que las miradas indiscretas no puedan leerlo (digamos, abriendo la CLI de mysql o phpMyAdmin y simplemente lea el valor almacenado en una fila)?
Si "accesible" está configurado en 0, entonces solo el usuario debe poder leerlo (accediendo a alguna página de PHP), pero si se establece en 1, todos los demás deberían poder leerlo también. . No sé cómo abordar esto, ¡así que cualquier ayuda es muy apreciada!
¿No es un poco raro poner la llave en el gatillo? si uno tiene acceso a la base de datos, podrá ver la clave y descifrar los datos ... – Roey
Estoy de acuerdo con @Roey al pasar la llave en el gatillo, hará que todo sea inútil. –