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实现吗?
我最终使用了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 进行加密。
我知道这正是你想要的,但至少应该为你指明正确的方向。