【问题标题】:Access IndexedDB as a file from javascript to encrypt it从 javascript 访问 IndexedDB 作为文件以对其进行加密
【发布时间】:2014-07-03 10:59:06
【问题描述】:

我在我的 Angular Web 应用程序中创建了一个带有 pouchDB 的 indexedDB。每次我关闭我的应用程序时,我都希望能够加密这个数据库文件。所以我有了用SJCL 加密数据库文件的想法。只有当用户可以输入正确解密的密码时,才能访问我的 Web 应用程序。

所以我的第一个问题是如何在 javascript 中访问 indexedDB 文件,以便加密/解密整个文件?其次,您如何看待这种加密/解密文件的想法?

谢谢

【问题讨论】:

    标签: javascript angularjs encryption sjcl


    【解决方案1】:

    您无法直接访问 IndexedDB 文件。您最好的选择是使用加密库来加密您传递到 PouchDB 的文档。例如:

    pouch.put({
      _id: 'myid', 
      sensitiveData: whateverLibrary.encryptString('secret')
    });
    

    如果您愿意,您甚至可以将其实现为a PouchDB plugin!基本上,您只需要覆盖 get/put/post/allDocs/bulkDocs 方法来加密文档,然后再将它们传递给 PouchDB 本身。

    【讨论】:

    • 谢谢...这似乎不是一个好的解决方案,因为我必须加密/解密我的每个请求(这可能会占用大量资源)。加密/解密数据库会更有效率。我仍然想知道如何创建具有离线功能的安全应用...
    • WebCrypto 应该可以缓解您的大部分性能问题,但它还没有在每个浏览器中实现。对于不支持它的浏览器,您可以使用 polyfill。
    猜你喜欢
    • 1970-01-01
    • 2018-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-10
    • 2015-09-18
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多