2011-04-01 25 views
6

Quiero saber la mejor manera de almacenar texto en una base de datos y encriptación de la misma con el fin de evitar que otros (administración) de su lectura. Permitiré a los usuarios escribir (hasta) párrafos de texto sin formato y luego almacenarlos en una base de datos. Este texto luego se muestra al usuario en su cuenta. Esto significa que tendré que ser capaz de descifrar los datos una vez que los encripte y los almacene en la base de datos. (I han creado el proyecto usando PHP)La mejor manera de cifrar texto para almacenar la base de datos MySQL

Gracias

+2

Lea aquí: http://stackoverflow.com/questions/1289061/best-way-to-use-php-to-encrypt-and-decrypt – Chris

Respuesta

1

AES_ENCRYPT y AES_DECRYPT son maneras fáciles para cifrar/descifrar cadenas sin necesidad de escribir el código usted mismo, disponibles en MySQL 5 hacia arriba.

Tenga en cuenta que la salida de AES_ENCRYPT es una cadena binaria, que necesita ser almacenado en columnas de un tipo de datos binarios (muy probablemente el más apropiado sería BLOB) en lugar de los tipos de texto tales como TEXT o VARCHAR que lo haría normalmente se usa para datos de texto.

El problema es que tendrá que almacenar la clave de cifrado en algún lugar, y de alguna manera tiene que impedir que el administrador acceda a ella. No sé si eso será posible (administrador de ¿qué exactamente?)

+0

¿Cómo propone almacenar, extraer, rotar y administrar de otra manera? claves de encriptación, de tal manera que otros no puedan leer datos encriptados – yfeldblum

+0

@Justice: Yo no. Y sería imposible hacer tal propuesta sin tener un conocimiento mucho más detallado de la aplicación en cuestión. – Jon

+0

@Justice - Depende de los requisitos - ¿A quién se refiere con "otros"?Si su gente tiene acceso completo al servidor, la única opción es usar el cifrado del lado del cliente (javascript). E incluso entonces podrían modificar el código de JavaScript para no cifrar datos, por ejemplo. –

2

Lo que usted está buscando es MCrypt. Además, si desea que los datos sean verdaderamente seguros, deberá usar HTTPS para el transporte, ya que una vez que el script PHP ha descifrado el texto cifrado (cuando el usuario está accediendo al texto), el texto plano se envía a través del NIC del servidor. . De modo que un administrador o atacante astuto podría simplemente oler el tráfico en la interfaz y registrar el tráfico.

1

De hecho, no puede evitar que el administrador vea estos textos, ya que también podrá leer la contraseña de cifrado y descifrarlos.

+0

+1 si él es la persona técnica (PHP) –

+0

¿En serio? Solo si almacena la contraseña en sí. Si solo almacena el hash de la contraseña, el administrador no podrá descifrar el texto. –

-1
  1. utilizar una conexión de guardar (https) para su administrador no puede obtener la contraseña de los registros.
  2. Uso MCript para cifrar descifrar los datos con la contraseña de los usuarios.
  3. Descifrar los datos con los usuarios contraseña. Sin embargo

hay un inconveniente grande:

Tendrá que guardar la contraseña en texto plano usuarios en la sesión, por lo que se debe tener cuidado de que los datos de sesión no se almacena en los registros de la base de datos, etc. ..

Si su administrador tiene acceso al código php que es una cuestión de segundos para cortar esto.

El único caso en que esto va a funcionar es si su administración puede acceder a la base de datos y el back-end, pero no el código.

Cuestiones relacionadas