Você pode usar a criptografia interna do provedor sqlite .net (System.Data.SQLite). Veja mais detalhes em http://web.archive.org/web/20070813071554/http://sqlite.phxsoftware.com/forums/t/130.aspx
Para criptografar um banco de dados não criptografado existente ou para alterar a senha de um banco de dados criptografado , abra o banco de dados e use a função ChangePassword () de SQLiteConnection:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cnn.ChangePassword("mypassword");
Para descriptografar uma chamada de banco de dados criptografada existenteChangePassword()
com uma senha NULL
ou ""
:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();
cnn.ChangePassword(null);
Para abrir um banco de dados criptografado existente ou para criar um novo banco de dados criptografado, especifique uma senha ConnectionString
como mostrado no exemplo anterior ou chame a SetPassword()
função antes de abrir um novo SQLiteConnection
. As senhas especificadas no ConnectionString
devem ser em texto não criptografado, mas as senhas fornecidas na SetPassword()
função podem ser matrizes de bytes binários.
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();
Por padrão, a palavra-chave ATTACH usará a mesma chave de criptografia do banco de dados principal ao anexar outro arquivo de banco de dados a uma conexão existente. Para alterar esse comportamento, você usa o modificador KEY da seguinte maneira:
Se você estiver anexando um banco de dados criptografado usando uma senha de texto não criptografado:
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 anexar um banco de dados criptografado usando uma senha binária:
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();