2011-03-30 91 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也不會混淆這些字節。