【问题标题】:Using sqlcipher with sqlite3 in Electron-Builder application在 Electron-Builder 应用程序中使用带有 sqlite3 的 sqlcipher
【发布时间】:2019-09-29 22:00:51
【问题描述】:

背景

我正在尝试在 Electron 应用程序中使用 sqlite3 和 sqlcipher 加密我的 sqlite 数据库。

在 sqlite3 npm 页面here

它说像这样安装构建,

纱线添加 sqlite3@4.0.8 --build-from-source --sqlite_libname=sqlcipher --sqlite=brew --prefix --runtime=electron --target=4.0.0 --dist-url=https://atom.io/download/electron

我已经用 home brew 安装了 sqlcipher。

brew install sqlcipher

问题示例

我正在尝试在我的 Electron 应用程序中创建一个像这样的加密数据库,

const sqlite3 = require('sqlite3').verbose();
var db = new sqlite3.Database('./src/encryptedDB.sql');

db.serialize(function() {
      db.run("PRAGMA KEY = 'secret'");
      db.run("PRAGMA CIPHER = 'aes-256-cbc'");
      db.run('CREATE TABLE IF NOT EXISTS clients (info TEXT)');
      var stmt = db.prepare('INSERT INTO clients VALUES (?)');
      for (var i = 0; i < 10; i++) {
        stmt.run('wunO Background Client Number - ' + i);
      }
      stmt.finalize();
    });

这不是创建加密数据库。我可以打开文件并查看其中的数据。

问题

我试图弄清楚这是否是我的语法的一个简单问题,或者当电子构建器在后台运行它时,它是不是很神奇,它正在重建 sqlite 并删除 sqlcipher 构建。

如何创建可在 MacOS 和 Windows 上运行的加密 sqlite 构建。

【问题讨论】:

    标签: electron sqlcipher electron-builder node-sqlite3


    【解决方案1】:

    我可以打开文件并查看其中的数据。

    既然它不要求任何类型的密码,那么数据库创建肯定有问题。在 Electron-builder 的自述文件中指出

    为确保您的原生依赖项始终匹配电子版本,只需将脚本“postinstall”:“electron-builder install-app-deps”添加到您的 package.json。

    将以下行放入您的 package.json 并再次重复安装过程,这为我解决了问题。

    "postinstall": "install-app-deps",
    

    另外,我创建了一个小型 Vue + Electron + Vuetify + SQLite(带有 Seqlize 和 Sqlcipher)入门套件,其中包含您需要的所有东西。生成加密数据库的源代码可以在src/renderer/models.js看到。

    https://github.com/rizalishan/vue-electron-starter

    【讨论】:

    • @journeyapps/sqlcipher 最近似乎没有更新。你知道这个项目是活跃的吗?我注意到我们不能使用 Electron 4,它似乎依赖于 Electron 2。你知道吗?我们真的问这个问题是为了了解如何让 sqlcipher 在我们的应用程序中使用 sqlite3,以便我们可以使用最新版本的依赖项。恐怕您使用的这个包可能已经过时了,而且看起来没有更新。
    猜你喜欢
    • 2017-09-24
    • 2019-09-25
    • 1970-01-01
    • 2021-02-17
    • 2017-01-29
    • 1970-01-01
    • 2016-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多