加密 SQL Server CE 数据库

Posted

技术标签:

【中文标题】加密 SQL Server CE 数据库【英文标题】:Encrypting SQL Server CE database 【发布时间】:2012-01-18 10:30:11 【问题描述】:

如何对 WP7 应用的独立存储中存在的 SQL Server CE 数据库进行加密和解密?

我能够将数据库从我的模拟器复制到我系统的硬盘上。现在,我怎么需要一种方法来加密和解密呢。

我想在加载 WP7 应用程序时解密整个 SQL Server CE DB,并在退出时加密 DB。我该怎么做?

这是我的 app.xaml.cs 代码

private void Application_Launching(object sender, LaunchingEventArgs e)
        
              // Code to Decrypt Database
        

private void Application_Deactivated(object sender, DeactivatedEventArgs e)
        
              // Code to Encrypt Database
        

【问题讨论】:

【参考方案1】:

请阅读这篇文章:http://blogs.microsoft.co.il/blogs/alex_golesh/archive/2011/05/24/windows-phone-mango-what-s-new-local-database-part-1-of-8.aspx

【讨论】:

我在上面运行代码时遇到错误... Microsoft.Phone.Controls.Toolkit 参考丢失... @paul 如果不是纯文本密码,那么不输入密码的另一种方法是什么? 手机上有一些DPAPI支持见msdn.microsoft.com/en-us/library/hh487164(v=vs.92).aspx 我已经用 2 个函数修改了这个问题,我希望用一行代码来加密数据库和解密数据库......有什么帮助吗? @Anil 在启动时询问用户密码。【参考方案2】:

我宁愿建议不要加密 CE 数据库。 XAP 已经加密(在应用程序在市场上发布之后),所以我认为不能轻易地炸开 xap 并获取数据库。加密的另一个问题是(截至目前)您失去了使用众所周知的 SQL 实用程序(例如 SSMS,因为不支持加密模式)编辑或查看数据的灵活性

所以我怀疑 wp 数据库的加密是否真的能解决手头的问题。

但如果在开发模式下交换或从网络下载或上传数据库,我们可能需要加密以防止访问数据。

【讨论】:

以上是关于加密 SQL Server CE 数据库的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server CE2.0打开加密的数据库(源代码)

从 SQL Server Express 导入 SQL Server CE

使用 SQL Server Express 和 SQL Server CE

我可以将 Sql Server CE (3.0) 用作 Windows 应用程序的嵌入式数据库吗?我必须在机器上安装 Sql Server CE 吗?

将 SQL Server CE 数据库与常规 SQL Server 数据库同步

插入到 SQL Server CE 数据库