studio proteger password encriptar encriptacion datos contraseña con cifrado php encryption sqlite3 sqlcipher

php - proteger - Encriptación de la base de datos SQLite3: determinación de la biblioteca de cifrado



proteger base de datos sqlite (3)

Estoy considerando dar soporte a las bases de datos cifradas de sqlite para una aplicación PHP. Estoy usando la extensión SQLite3 de PHP y parece que ya admiten un método de encriptación, al menos SQLite3 :: __ construct permite que pase una clave de encriptación.

Lo que no pude averiguar es de qué biblioteca de cifrado están hablando en la documentación. Al buscar en Google encontré lo siguiente:

  • sqlcipher
  • sqlite ver
  • sqlite crypt

Lo que no está claro para mí es:

  • cómo estas bibliotecas se integran con SQLite3
  • si comparten la compatibilidad entre ellos con respecto a la especificación de la clave de cifrado y la configuración de acceso a los datos, etc.
  • si puedo detectar automáticamente en mi aplicación si hay alguna y qué biblioteca de cifrado admite mi instalación SQLite3, entonces mi aplicación podría admitir diferentes bibliotecas de cifrado

¡Cualquier ayuda es muy apreciada!



Por lo que sé, la contraseña que pasa al PHP abierto solo funcionará si está utilizando una versión de SQLite compilada con soporte de cifrado (es decir, el cifrado no funciona en una compilación predeterminada).

Hemos tenido algunos usuarios que usan SQLCipher con PHP construyendo el software PHP con la base de código SQLCipher. Más información está disponible en el hilo aquí:

http://groups.google.com/group/sqlcipher/browse_thread/thread/6d77e4ef2a1530d7


La biblioteca SQLite3 necesita ser construida con soporte para cifrado. Esos proyectos (y algunos más: https://.com/a/5877130/502789 ) se pueden usar para obtener un sqlite3.so/dll con soporte de encriptación.

Entonces, las preguntas ...

  1. No se integran con sqlite. Ofrecen una biblioteca sqlite3 de reemplazo con soporte de cifrado
  2. Vanilla SQLite3 proporciona la API necesaria para el cifrado, pero no se ha implementado. Creo que SQLiteCrypt usa su propia API y por lo tanto no funcionará aquí (no me cites sobre eso).
  3. Su instalación de SQLite3 no lo admite, debe reemplazarlo con una biblioteca SQLite3 compilada con esta característica (consulte las opciones que he vinculado).

NB: No he utilizado el cifrado PHP + SQlite3.