2011-03-30 61 views
1

有一个快速的问题。我在我的C#应用​​程序中使用SQLite数据库文件。目前它没有密码保护。但是,如果需要它作为我的问题的解决方案的话。SQLite文件验证

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

File.Exists(文件路径),在其正常工作的那一刻

检查。但有可能有人可以使用我的文件扩展名创建一个文件,那么如何确认它是一个有效的Sqlite文件?

在此先感谢!

+1

“有效”的意思是指格式正确,可读性强,还是数据未被篡改? – Tim 2011-03-30 13:54:56

+0

任何用户都可以使用我的SQLite文件名和扩展名创建文件,但是我的程序如何验证它是SQLite文件而非用户创建或重命名的文件 – 2011-04-03 19:55:19

回答

5

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

开头每个SQLite数据库文件中的众所周知的16个字节的顺序是:

0x53 0x51 0x4c×69 0x74 0x65 0x20的0x66 0x6f 0x72 0x6d 0x61 0x74 0x20的0x33为0x00

(从http://www.sqlite.org/fileformat.html

即,假定密码prote ction也不会混淆这些字节。