如何在electron应用程序中加密SQLite DB?

如何在electron应用程序中加密SQLite DB?,sqlite,electron,sqlcipher,Sqlite,Electron,Sqlcipher,我有一个electron应用程序,它将数据保存在存储在我机器中的SQLite db中。我有CRUD操作的所有设置,应用程序运行良好。现在我需要加密SQLite DB文件。我在网上搜索解决方案,但所有的解决方案都是预加密的数据库,该数据库在Electron内部被解密 要求是,用户将提供密码,应用程序将使用该密码加密DB文件,前进用户将提供密码以解密和执行CRUD操作 你知道如何做到这一点吗 p.S.:我已经检查了SQLCipher文档,但没有找到我需要的。到目前为止,我正在使用sqlite3节点模

我有一个electron应用程序,它将数据保存在存储在我机器中的SQLite db中。我有CRUD操作的所有设置,应用程序运行良好。现在我需要加密SQLite DB文件。我在网上搜索解决方案,但所有的解决方案都是预加密的数据库,该数据库在Electron内部被解密

要求是,用户将提供密码,应用程序将使用该密码加密DB文件,前进用户将提供密码以解密和执行CRUD操作

你知道如何做到这一点吗

p.S.:我已经检查了SQLCipher文档,但没有找到我需要的。到目前为止,我正在使用sqlite3节点模块执行CRUD

编辑1:我尝试使用模块,并且能够在单独的js文件中加密db。但当我将其与主应用程序集成时,应用程序会因为高RAM消耗而关闭。
有什么建议吗

电子应用程序中的加密是一件棘手的事情。 这是因为它会给你虚假的安全感

您可以加密本地数据库,但使用electron很容易将其解密回来,可能根本不值得? 很容易获得电子应用程序的来源。缩小只有一点点帮助,但这不是真正的保护

你可以采取很多方法,但具体情况不同。 需要回答的问题有:

  • 你想保护谁
  • 安全性是否至关重要,或者这只是基本措施,因此并非每个人都可以首先从数据库获取数据 一瞥
  • 使用该应用程序的用户是否拥有该应用程序的管理员用户权限 机器
  • 您是通过electron应用程序直接访问db,还是通过其他方式 一种系统范围服务(deamon)正在与db和 将结果传递给electron应用程序
  • 如果“是”,您如何沟通 使用electron应用程序提供服务,如何确保安全
查看源代码访问讨论:

并检查本文(尤其是安全部分):


如果使用SQLite,最好的选择是使用SQLCipher。问题是您必须编译新的二进制文件才能工作,并且SQLite和SQLcipher for node的版本存在一些限制

您可以使用此软件包:


或者手动编译,这里有一个示例

Hi,感谢您的回复。您所解释的是关于electron应用程序的加密。但我的问题是关于加密我在我的电子应用程序中使用的SQLite文件。有什么想法吗?所有这些话甚至都没有接近于真正回答这个问题。。。