Sqlite .net sağlayıcısının (System.Data.SQLite) yerleşik şifrelemesini kullanabilirsiniz. Http://web.archive.org/web/20070813071554/http://sqlite.phxsoftware.com/forums/t/130.aspx adresinde daha fazla ayrıntıya bakın.
İçin varolan şifresiz veritabanını şifrelemek veya şifreli bir veritabanının şifresini değiştirmek için , veritabanını açın ve ardından SQLiteConnection ait ChangePassword () işlevini kullanın:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.Open();
cnn.ChangePassword("mypassword");
İçin mevcut bir şifreli veritabanı şifresini çağrıyı ChangePassword()bir ile NULLveya ""şifre:
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3;Password=mypassword");
cnn.Open();
cnn.ChangePassword(null);
Mevcut bir şifrelenmiş veri tabanını açmak veya yeni bir şifreli veri tabanı oluşturmak için ConnectionString, önceki örnekte gösterildiği gibi içinde bir şifre belirtin veya yenisini SetPassword()açmadan önce işlevi çağırın SQLiteConnection. ConnectionStringİçinde belirtilen parolalar düz metin olmalıdır, ancak SetPassword()işlevde sağlanan parolalar ikili bayt dizileri olabilir.
SQLiteConnection cnn = new SQLiteConnection("Data Source=c:\\test.db3");
cnn.SetPassword(new byte[] { 0xFF, 0xEE, 0xDD, 0x10, 0x20, 0x30 });
cnn.Open();
Varsayılan olarak, ATTACH anahtar sözcüğü, başka bir veritabanı dosyasını mevcut bir bağlantıya eklerken ana veritabanıyla aynı şifreleme anahtarını kullanacaktır. Bu davranışı değiştirmek için KEY değiştiricisini aşağıdaki gibi kullanırsınız:
Açık metin parolası kullanarak şifrelenmiş bir veritabanı ekliyorsanız:
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();
İkili parola kullanarak şifrelenmiş bir veritabanı eklemek için:
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();