Puede utilizar el cifrado integrado del proveedor .net sqlite (System.Data.SQLite). Ver más detalles en http://web.archive.org/web/20070813071554/http://sqlite.phxsoftware.com/forums/t/130.aspx
Para cifrar una base de datos no cifrada existente , o para cambiar la contraseña de una base de datos cifrada , abra la base de datos y luego use la función ChangePassword () de SQLiteConnection:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cnn.ChangePassword("mypassword");
Para descifrar una llamada de base de datos cifrada existenteChangePassword()
con una contraseña NULL
o ""
:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();
cnn.ChangePassword(null);
Para abrir una base de datos cifrada existente, o para crear una nueva base de datos cifrada, especifique una contraseña ConnectionString
como se muestra en el ejemplo anterior, o llame a la SetPassword()
función antes de abrir una nueva SQLiteConnection
. Las contraseñas especificadas en el ConnectionString
deben ser texto sin cifrar, pero las contraseñas proporcionadas en la SetPassword()
función pueden ser matrices de bytes binarios.
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();
De forma predeterminada, la palabra clave ATTACH utilizará la misma clave de cifrado que la base de datos principal al adjuntar otro archivo de base de datos a una conexión existente. Para cambiar este comportamiento, use el modificador KEY de la siguiente manera:
Si está adjuntando una base de datos cifrada con una contraseña de texto sin cifrar:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.db3' AS [Protected] KEY 'mypassword'", cnn);
cmd.ExecuteNonQuery();
Para adjuntar una base de datos encriptada usando una contraseña binaria:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cmd = new SQLiteCommand("ATTACH DATABASE 'c:\\pwd.db3' AS [Protected] KEY X'FFEEDD102030'", cnn);
cmd.ExecuteNonQuery();