2016-04-14 30 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

相关问题