Bueno, aquí te dejo un proyecto para que pruebes cómo se encripta y desencripta de modo simétrico mediante gpg un fichero cualquiera, en nuestro caso, el fichero de una base de datos sqlite que he llamado
test.db
El algoritmo es muy básico: la primera vez que se ejecuta el programa se comprueba si ya existe un fichero encriptado, en caso contrario se crea o se carga la base de datos para empezar a trabajar con ella.
Cuando acabamos con el programa, se encripta el fichero de base de datos y se borra a continuación el que está en claro, sin encriptar.
La siguiente vez que se abre el programa, se desencripta el fichero encriptado y se borra el que se creó anteriormente, de manera que podemos trabajar con la base de datos de nuevo.
Finalmente, cuando cerramos el programa vuelve a encriptarse la BD y se borra el original.
Esto es muy básico, pero ahí lo dejo para que lo perfeccionéis. Hay que tener en cuenta que el método de encriptación no es el más seguro, porque sólo se usa una frase-contraseña que está en una variable String. El programa podría pedirla cada vez mediante un diálogo, pero si se teclea mal o la olvidamos, adiós a la base de datos...
Para ver en acción el comportamiento del programa, mantén una ventana abierta con tu carpeta de usuario visible, para que veas en tiempo real cómo se crean y se borran los archivos con los que trabajamos.
Si queremos mayor seguridad, gpg puede generar claves públicas y privadas para los usuarios y trabajar de forma asimétrica, mucho más seguro. Pero es bastante tedioso implementar tantas funciones de gpg en un programa de gambas para lo que queremos en este caso, que es evitar miradas indiscretas a la base de datos cuando el programa no está en uso.
Espero que sirva de ayuda, saludos