【问题标题】:C# Determine if a SQLite database file is password encryptedC# 判断 SQLite 数据库文件是否经过密码加密
【发布时间】:2016-04-15 05:20:58
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

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

    摘自The SQLite Database File Format

    1.2.4 每页保留字节数

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

    【讨论】:

    • 你能举个例子吗?
    • 我没有任何示例,因为我在日常工作中不使用 SQLite,尤其是在加密方面。我只是根据我找到的文档提出了一个解决方案。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-22
      • 1970-01-01
      • 1970-01-01
      • 2020-01-04
      • 2014-11-05
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      相关资源
      最近更新 更多