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