Windows 运行时应用 加密 sqlite 数据库和同步

本文关键字:数据库 同步 sqlite 加密 运行时 应用 Windows | 更新日期: 2023-09-27 18:32:27

我正在编写一个应用程序,可以在不同的设备(例如Windows 8设备和Windows Phone 8设备)中同步sqlite数据库。

现在对于同步,我使用的是 azure 移动服务后端,但现在没有加密,因此设备本地存储和 azure 上的数据存储为"开放"。

这个问题真的很愚蠢:

如何在不同的设备上获取相同的加密/解密密钥?

我可以看到以下解决方案,但它们似乎有缺点:

  1. 从密码生成它们? - 我认为这是一个坏主意。
  2. 在服务器上生成密钥? - 但是在某些情况下,用户根本不使用同步,因此他可能没有连接到互联网。

Windows 运行时应用 加密 sqlite 数据库和同步

要求用户提供一些密码/帐户信息,并使用将从用户提交的数据生成的密钥动态加密/解密数据库文件。没有关于可用于加密/解密不同设备上的文件的用户的信息。也许只有来自已签名Microsoft帐户的姓名/电子邮件才能用于生成加密/解密密钥,但它根本不强。