C# SQLite文件验证

C# SQLite文件验证,c#,database,sqlite,C#,Database,Sqlite,我有一个简短的问题。我在C#应用程序中使用了一个SQLite数据库文件。目前它没有密码保护。但这将是以防它作为我的问题的解决方案 问题是是否有一种方法可以检查与我的应用程序关联的SQLite文件是否是真正的SQLite文件。我在做一个 File.Exists(文件路径) 现在检查哪一个工作正常。但是有可能有人可以创建一个具有我的文件扩展名的文件,那么我如何验证它是一个有效的Sqlite文件呢 提前谢谢 您可以检查文件中的前16个字节: 众所周知,从每个SQLite数据库文件开始的16字节序列是:

我有一个简短的问题。我在C#应用程序中使用了一个SQLite数据库文件。目前它没有密码保护。但这将是以防它作为我的问题的解决方案

问题是是否有一种方法可以检查与我的应用程序关联的SQLite文件是否是真正的SQLite文件。我在做一个

File.Exists(文件路径)

现在检查哪一个工作正常。但是有可能有人可以创建一个具有我的文件扩展名的文件,那么我如何验证它是一个有效的Sqlite文件呢


提前谢谢

您可以检查文件中的前16个字节:

众所周知,从每个SQLite数据库文件开始的16字节序列是:

0x53 0x51 0x4c 0x69 0x74 0x65 0x20 0x66 0x6f 0x72 0x6d 0x61 0x74 0x20 0x33 0x00

(来自)


也就是说,假设密码保护不会将这些字节弄乱。

您可以检查文件中的前16个字节:

众所周知,从每个SQLite数据库文件开始的16字节序列是:

0x53 0x51 0x4c 0x69 0x74 0x65 0x20 0x66 0x6f 0x72 0x6d 0x61 0x74 0x20 0x33 0x00

(来自)


也就是说,假设密码保护不会把这些字节也弄乱。

所谓“有效”是指格式良好、可读,还是指数据未被篡改?任何用户都可以使用我的SQLite文件名和扩展名创建一个文件,但我的程序如何验证它是一个SQLite文件,而不是用户通过“有效”创建或重命名的文件您的意思是格式良好且可读,还是数据未被篡改?任何用户都可以使用我的SQLite文件名和扩展名创建一个文件,但我的程序如何验证它是一个SQLite文件,而不是用户创建或重命名的文件