C#确定SQLite数据库文件是否经过密码加密

时间:2016-01-11 00:21:19

标签: c# sql database sqlite system.data.sqlite

是的,我知道可以尝试连接到SQLite数据库,然后在需要密码时使用try-catch。这不是干净的代码。我正在寻找一种更智能的方法来确定.sqlite文件在尝试连接之前是否已加密。我正在为这个项目使用System.Data.sqlite dll。

2 个答案:

答案 0 :(得分:0)

您必须检查SQLite主数据库文件本身。

摘自The SQLite Database File Format

  

1.2.4每页保留字节数

     

SQLite能够在其中留出少量额外字节   每个页面的末尾供扩展使用。这些额外的字节是   例如,由SQLite加密扩展用于存储随机数   和/或与每个页面关联的加密校验和。

答案 1 :(得分:0)

你唯一的选择是try-catch。由于the entire database file is encrypted包括元数据,因此没有可以测试的特定位。但我相信在处理不正确或丢失的密码时,try-catch是合适的。