Windows Phone 7 - SQLite with Encryption

本文关键字:with Encryption SQLite Phone Windows | 更新日期: 2023-09-27 17:56:38

我在Windows Mobile中使用System.Data.SQLite for SQLite。它具有内置的加密支持。我发现许多适用于Windows Phone 7的SQLite实现。但是,它们都没有内置的加密支持。有人知道任何支持加密的Windows Phone 7的SQLite实现吗?

Windows Phone 7 - SQLite with Encryption

我最终使用了Mango版本(Windows Phone 7.1)中引入的SQL CE,它具有内置的加密(密码)支持。参考 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 有很好的解释。

Windows Phone 7中似乎没有任何API可以让您根据类似于DPAPI的用户凭据加密/解密数据,因此您必须自己动手。文档建议以下算法在 Windows Phone 7 上可用:

  • AES
  • HMACSHA1
  • HMACSHA256
  • RFC2898派生字节
  • RSA
  • SHA1
  • SHA256

这些算法应该提供创建体面的加密架构所需的一切,并且应该足以加密数据库架构中的敏感列,而不是整个数据库。

那么唯一的问题是查看使用什么密钥。如果可以要求用户输入密码(这在很大程度上取决于您正在构建的应用程序类型),则可以使用 Rfc2898DerivedBytes 从用户输入中派生密码。否则,您可以从某些设备数据中创建密钥。(请参阅:如何在 Windows Phone 7 中获取对称密钥?)派生密钥后,可以使用 AES 进行加密。

我知道这正是你想要的,但至少应该为你指明正确的方向。