SQLite Viewers/Browsers 在 C# 中的预防

SQLite Viewers/Browsers prevention in c#

我需要知道如何保护我的 sqlite 数据库文件不被 sqlite viewers/browsers 编辑或添加记录,我正在使用 c#

您可以使用 SQLite Encryption Extension 如果没有密钥,数据库将无法作为 SQLite 数据库打开。

另一种方法是模拟 SEE 的工作原理。也就是说,存储在磁盘上的数据总是通过您喜欢的加密方法完全加密,并且数据库被解密为一个临时文件,然后在访问数据库时打开(显然只有在提供正确的密钥时),然后被加密并在完成时写入。

另一种选择是利用 SQLCipher

我解决了它并使用 System.Data.Sqlite 使用这些方法加密数据库

void EncryptDB()
{
    using (System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection("Data Source=Test.db;Password="))
    {
        conn.Open();
        conn.ChangePassword("password");
        conn.Close();
    }
}

void DecryptDB()
{
    using (System.Data.SQLite.SQLiteConnection conn = new System.Data.SQLite.SQLiteConnection("Data Source=Test.db;Password=password"))
    {
        conn.Open();
        conn.ChangePassword("");
        conn.Close();
    }
}

我在使用 sqlite-net-pcl 连接到数据库之前调用了 DecryptDB() 方法,在连接关闭后我调用了 EncryptDB() 方法。

如果你问我为什么不使用 System.Data.Sqlite 而不是 sqlite-net-pcl,那是因为我发现 sqlite-net-pcl 很简洁并且执行任务所需的代码更少这使得阅读和记录更容易。

@MikeT 感谢您的回答,它确实指导了我并帮助我找到了这个解决方案。