【问题标题】:How to encrypt the SQLite database in Flutter?如何在 Flutter 中加密 SQLite 数据库?
【发布时间】:2018-10-18 08:02:20
【问题描述】:

我正在通过以下代码在 Flutter 中创建一个数据库,有什么方法可以加密数据库吗?

是否有任何可用于 Flutter 的库?

initDb() async {
    io.Directory documentsDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentsDirectory.path, "test.db");
    var theDb = await openDatabase(path, version: 1, onCreate: _onCreate);
    return theDb;
  }

【问题讨论】:

    标签: flutter flutter-layout sqlcipher flutter-dependencies


    【解决方案1】:

    Pointy Castle 似乎是目前首选的加密库。

    【讨论】:

    【解决方案2】:

    当前 sqflite 使用平台提供的任何 sqlite 版本。有一个关于这里的讨论,你可以在这里关注: https://github.com/tekartik/sqflite/issues/32

    我现在知道的唯一解决方案是https://github.com/QwilApp/encrypted_sqlite,它可以用作 sqflite 的替代品,正如您所说,它在本机端使用 SQLCipher

    【讨论】:

    • 嗨,@alextk 你可能想用你的图书馆更新这个答案pub.dev/packages/sembast谢谢! :)
    • @DazChong 问题是关于加密 sqlite 数据库,sembast 是一个替代方案,但它不是没有 sql!
    【解决方案3】:

    我今天也在找这样的图书馆。

    最后我在 pub.dev 中找到了flutter_sqlcipher,确实解决了我的问题。

    这里是它的描述。

    这是一个 Flutter 插件,它捆绑和包装了 SQLCipher for Android,它是 SQLite 的开源扩展,提供透明的 256 位 AES 数据库文件加密。

    希望对你有帮助。

    【讨论】:

    • 警告:目前仅适用于 Android。 (iOS 支持计划中。) Source
    猜你喜欢
    • 2019-11-17
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 2010-11-18
    • 1970-01-01
    相关资源
    最近更新 更多