2016-04-14 156 views
1

我在我的UWP應用程序中有一個sqlite數據庫。在我的應用程序首次啓動時,我創建了數據庫並將其設置爲所有表格和內容。我玩弄應用程序並生成一些數據就好了。但是當我關閉並重新啓動應用程序時,它會在嘗試執行任何查詢時開始給我'file is encrypted or is not a database'錯誤。 我使用sqlite3.dll V3.12.0這裏是我編譯關鍵語句(用一個例子加密密鑰):'file is encrypted or not a database'error while open a sqlite db

"PRAGMA key='aes256:66zk4rsKBIfSJ4vhF1XkzFxzrznOhjjnotuHRdKADIg='" 

我證實,在第二次發射,加密密鑰被用來運行編譯關鍵聲明。

編輯:它看起來像加密進行得很好。因爲,當我使用像SQLite Manager這樣的工具並提供相同的密鑰時,它會打開數據庫。

+0

阿希什嗨,你能告訴我的C#代碼使用觸發數據庫的加密與PRAGMA關鍵? – toroveneno

回答

1

我認爲你可能會發生什麼是你使用SQLite以前的庫與加密工作正常工作就像我一樣。

<SDKReference Include="SQLite.UAP.2015, Version=3.10.2"> 
    <Name>SQLite for Universal App Platform</Name> 
</SDKReference> 

而且因爲你更新到V3.12.0在這個版本的PRAGMA鍵沒有工作,因此不能夠進入到原先的加密DB庫。

我試圖鏈接重建到那個版本,但很難:"SQLite.UAP.2015, Version=3.10.2"

+0

在我的情況下,我使用相同的版本加密數據庫,即v3.12.0,但它仍然在解密時給出錯誤。但是,當我重新安裝sqlite包(不確定如何)時,該錯誤得到了解決。 – tavier

+0

嗨阿希什,只是要知道,您正在使用通用Windows平臺Sqlite擴展權? http://www.sqlite.org/2016/sqlite-uwp-3130000.vsix和「SQLite.Net-PCL」:「3.1.1」,?問候。 – toroveneno

+0

或者您是否使用SqlCipher? – toroveneno

相關問題